push_back(char c) 在string 结尾放置字符 pop_back() 删除字符串的最后一个字符,将其长度减少1
/string 中使用 push_back ()效率很低,尽量使用+=/
substr (pos,n) pos 表示要截取的字符串的起始位置,n表示要截取的字符串长度
substr(pos) 表示从pos位置开始一直截取到字符串最后一位
toupper(c)转化为大写
tolower(c)转化为小写
assign() 赋值常用方法:
直接用另一个字符串赋值 例:str2.assign(str1);
用另一个字符串的一个子串赋值 (字符串,起始位置,长度) ,例:str3.assign(str1,2,3);
用一个字符串的前一段子串赋值 (字符串,长度) ,例:str4.assign(“world”,5);
用几个相同的字符串赋值 (num,char) num个char ,例:str5.assign(10,‘c’);
isdigit ( c ) 如果c是数字,返回true
isalpha( c ) 如果c是字母,返回true : 不区分大小写,大小写都算
isalnum( c ) 如果c是字母或数字,返回true
isupper() 如果c是大写字母,返回true
islower() 如果c是小写字母,返回true
iscntrl ( c) c是控制符,返回true
包含头文件 #include < string>
std::to_string(int)
std::to_string(long)
std::to_string(long long)
std::to_string(float)
std::to_string(double)
std::to_string(long double)
数字转字符串:使用sprintf()函数
char str[10]; int a=123456; sprintf(str,"%d",a);//转为int \-------------------- char str[10]; double a=123456; sprintf(str,"%.3lf",a);//转为三位小数的double \-------------------- char str[10]; int a=123456; sprintf(str,"%x",a);//转为16进制stoi 将string转化为int
stol string转为long
stoll string转为long long
使用sscanf()函数
char str[]="123456"; int a; sscanf(str,"%d",&a); ............. char str[]="123.456"; double a; sscanf(str,"%lf",&a); ............. char str[]="BD"; int a; sscanf(str,"%x",&a); //16进制转换成10进制如果输入“hello world!” 使用的是 cin>>str,则 str=“hello”
如果使用的是getline(cin,str) ,则str=“hello world!"
">>"遇到空格停止,开始返回string对象,“getline”遇到enter停止,开始返回string对象。
使用以上性质可以完成:
-给一行字符串按空格分割放入vector中
#include <sstream> stirng str = "hello world!"; // 预先给出的字符串 isstringstream is (str); // 新建一个输入流赋值为str string temp; // 新建string临时变量用来存放分段字符 vector <string> vec; while (is >> temp) // 因为cin>> 只能从标准输入中读取单个词,遇到空格就停止了 { vector.push_back(temp); }如果想利用某一特定字符串分割str则可以写
string str ="hello ,a , b"; isstringstream is(str); vector <string> res; string temp; while (getline(is ,temp,',')){ res.push_back(temp); }