字符串类
使用时需要包含头文件string
,下面是使用的几种方式
string sl;
sl=”hello world”;
string s2=”hello world”;
string s3(“hello world”);
string s3(6,’a’);
1.访问字符串中的字符
string类冲在了“[]”运算符,可以通过所用等方式访问和操作字符串中指定位置的字符
string s=”hello,world”;
s[9] = ‘\0’;
于是变成了hello word
2.字符串的连接
使用+就行
string s1,s2;
sl=”超你妈”;
s2=”雷雨lyy”;
cout<<s1+s2<<endl;
3.字符串的比较
直接调用> < ==
即可
string s1,s2;
cin>>s1>>s2;//比较两个字符串内容是否相同
if(s1>s2)
cout<<”字符串s1大于s2”<<endl;
else if (s1<s2)
cout<<”字符串s2大于s1”endl;
else
cout<<”字符串s1与s2相等”<<endl;
4.字符串的长度计算
使用length获取字符串长度,其中不计算“/0”,因此计算s字符串时,长度为9
string s = “hello world”;
cout<<”length():”<<s.length()<<endl;
5.字符串交换
使用函数swap(),但是只能交换string类型的字符串
string s1=”hello world”;
string s2=”nie mama de”;
s1.swap(s2);
swap(s1,s2);
典例
一
题目描述
使用string类,对英文人名的字符串处理。
若一个人的姓名有 4 个单词,输入 4,以及这 4 个单词。
输出3行:
第一行:4 个单词,全部字母大写,单词用空格隔开。
第二行:字符总数。
第三行:姓名缩写,取每个单词的首字母大写。
输入
数字 n (n<1000),以及连续 n 个单词
如:(司马相如)
4 SI MA xiang ru
输出
第一行:n 个单词,全为大写,空格隔开。
第二行:n 个单词的字符总数。
第三行:n 个单词的首字母连续。
如:
SI MA XIANG RU
11
SMXR
样例输入
3 liu yOU ji
样例输出
LIU YOU JI
8
LYJ
1 |
|
二
题目描述
使用 string,进行姓氏字符串排序,升序输出。输入
第一行: N (3<N<100)
第 2 ~ N+1 行:每行一个单词
输出
N 个单词按字典顺序输出。样例输入
4
tom
jack
zhang
liu
样例输出
jack
liu
tom
zhang
1 |
|