`
eggbucket
  • 浏览: 184721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

string用法总结(c++)

    博客分类:
  • C++
 
阅读更多

1.        定义和初始化

string s1;

string s1(s2);

string s1(“ year ”);

string s1(n, ’x’);//s1 c n 个副本

string s1(s2,pos,len);//s1 被初始化成 s2 中从 pos 开始的 len 个字符的副本。

2.      读写

cin>>s;// 忽略开头空白字符,到遇到空白字符为止

cout<<s;

也可以作为循环的条件,如 while(cin>>s){…}

getline(cin,line);// 遇到换行符即停止返回

 

3.      大小和容量

s.empty();// 返回 bool

s.size();// 返回 s 里字符的个数。

注意:返回的并不是 int 型,而是 string::size_type 类型的值

for(string::size_type i=0;i!=s.size();i++)

 

4.      关系判断

if(s1==s2)

if(s1<=s2)// 等效于区分大小写的字典顺序比较

 

5.      赋值,相加,连接

st1=st2;

st3=st1+st2;

st1 += st2; st2 追加到 st1 末尾

st3=st1 + “girl”;

st4=”girl” + st1;// 错误的!

 

6.      获取字符

cout<<s[index];

注意:下标是从 0 开始的。

       而要注意 s[s.size() - 1] 则表示 s 的最后一个字符。

 

7.      修改

s1.insert(1,"MM");

s1.insert(1,str);

s1[1] 处插入字符。再来一个:

s1.insert(s1.size() , 2,’M’);// s1 的末尾插入 MM (直接 += 不就行了 ~~~

s1.assign(s2);// s2 替换 s1

s1.assign(s2,pos,len);

// s2 pos 开始的 len 个字符替换 s1

s1.erase(pos,len);// 删除 s1 pos 开始的 len 个字符

还有个替换的函数,在插入的同时删除:

s1.replace(1,3,”yearismygf”);// s1 1 开始的 3 个字符替换为指定字符

 

8.      提取字串

s.substr(pos,n);// 返回从 pos 开始的 n 个字符的 string

s.substr(pos);// pos 到末尾

 

9 .内存输入输出

sprintf(str, "%d "   ,i);

sscanf(str, ”%d” ,&i);

 

10.  查找操作

s1.find("MM");// 返回第一个 MM 的位置

s1.rfind(“MM”);// 返回最后一个 MM 的位置

s1.find("5 MM");// 从第 5 个字符开始找

 

11.  比较

string s(“abcd”);

s.compare( abcd ); // 返回 0

s.compare( dcba ); // 返回一个小于 0 的值

s.compare( ab ); // 返回大于 0 的值

s.compare(s); // 相等

s.compare(0,2,s,2,2); // 用” ab ”和” cd ”进行比较   小于零

s.compare(1,2, bcx ,2); // 用” bc ”和” bc ”比较。

 

12. 字符处理

#include<cctype>

isalnum(s[i])  如果 s[i] 是字母或数字 则为 true

islower(c) 小写字母

isupper(c) 大写字母

tolower(c)

toupper(c) 转换

isdigit(c) 是数字

……

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics