Strings

String (C++ vs Python vs Rust)

C++ Rust Python Go
Append s1.append(s2) s1.push(char); str1 += str2
Create string test;
           
let s1 = String::new();
s1 = "test".to_string();
let s2 = String::from("Hello");
            
       
self.input = ""
            
       
var s string
            
Convert
Lowercase
transform(sl.begin(), sl.end(), sl.begin(), ::tolower)
                        
int to string
int a=4; 
stringstream ss; 
ss<<a; 
cout<<ss.str()
                        
int to string
int a = 1, b = 2;
string s = to_string(a) + "," + to_string(b);
                        
string to int
string str="ab"; 
int i; 
istringstream(str)>>i;
                        
string to int
string str="ab"; 
int i; 
stringstream(str)>>i;
                            
       
            
       
            
       
import (
"strconv"
}
func test(a int) {
    var s string = strconv.Itoa(a)	//Convert int to String
}
            
Erase / pop back
Erase all character
s.erase();
                        
Pop front
//erase (size_type idx, size_type len )
s.erase(0, 1);
                        
Pop back
s1.pop()
                        
              
s1.pop()
            
    
#Pop back
s1 = s1[:len(s1)-1]
#Pop front
s = s[1:]
            
    
//Pop back
//Slicing Works same as Python
s = s[:len(s)-1]

//Pop front
s = s[1:]
            
Element at index i
str[i]
            
Method-1
s1.chars().nth(i - 1) 
                        
Method-2
let letter = str.chars()
    .nth(i as usize).unwrap()
    .to_digit(10).unwrap()
        as i32;
                        
     
str[i]
            
       
s[i]
            
Iterate chars in string
for (int i=0; i<str.size(); ++i)
            
Rust chars()
//pub fn chars(&self) -> Chars<'_>
for ch in str.chars() {

}

let word = "goodbye";
word.chars().count();   //7
let mut chars = word.chars();
assert_eq!(Some('g'), chars.next());
                
for i in range(0, len(letters)):
    
for i:=0; i<len(s); i++ {
    s[i]
}
            
Size
    
str.length() or str.size()
            
    
s.len()
            
    
len(str)
            
    
len(s)
            
Substring
    
str.substr(start_index, length)
            
    
&str.substring(start_index,end_index));  //Method-1
let substr = &s[j..i];  //Method-2
            
    
//Slice
substr = s[j:i]
            
    
//Slice
s = s[1:]