c++ string类型相关操作
? 1. 定义和初始化string对象
默认初始化,s是一个空字符串。
s的内容是??“hello”
2. 读取string对象 ?????? IO操作 cin>>s;? 以空白为结束。因此如果输入hello world只能读入hello。可以cin>>s1>>s2; 输入两个。 读取未知数量的string对象,可以用: string s; while(cin >> s){ //处理s } 使用getline读取一整行(可以保留空格),getline函数的参数是一个输入流和一个string对象,直到遇到换行符。 while(getline(cin,s)){ //处理s } 3. 处理string对象
for(auto c:s){ //实际上c是char类型 //处理c } ???????或者使用下标运算符[ ],下标运算符接收的是unsighed类型的值。s[0],s[1]返回值是该位置上字符的引用,
???????????isalpha(c) 字符是字母;isdigit(c)是数字;islower(c)是小写字母;isupper(c)是大写字母;isspace是空格; ???????????toupper( c )?转为大写字母;tolower(c)转为小写字母;? ???4. 搜索string
??????????????????????????? 否则返回npos(npos是一个string::size_type类型,并初始化为-1,表示任何string最大的可能大小) ? string s(“hello”); ? auto p = s.find("world"); //p这是=nops
?????????? s.rfind(args) 找到s中最后一次出现args的位置 ?????????? s.find_first_of (args) 找到s中第一次出现args任何字符的位置 ?? s.find_last_of (args) 找到s中最后一次出现args任何字符的位置 ?? s.find_first_not_of (args) 找到s中第一次出现不属于args任何字符的位置 ?? s.find_last_not_of (args) 找到s中最后一次出现不属于args任何字符的位置 (args中可以加上特定位置类似(c,pos),用来指定从哪里开始搜索) ????????? eg: unsigned pos; ?????????????????? pos = s.find_first_of ( s1 ); ??????????????????? if(pos!=nops){??// s中有s1中的字符?}
????????????? string s1 = s.substr(i);返回从i位置开始的子串 5. 数值转换 ???? int i=123; ???? string s = to_string(i);??? 整数转换为string ??? ?double d = stod(s); 字符串转浮点数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |