对于字符串,除了按照C语言的字符数组处理外,C++还提供了一种更加简单的处理方法,那就是string类。使用string类的第一步是采用#include包含头文件
接下来介绍string类型的详细用法:
先定义两个string的对象str1,str2
1、str1.length()或str1.size() :获取str1的长度
2、str1.append(str2) :把str2追加到str1后面
str1.append(str2,x,n) :把str2从第x个字符开始的n个字符追加到str1后面
str1.append(n,'z') :把n个字符z追加到str1后面
3、str2.assign(str1,x,n) :把str1从位置x开始的n个字符赋值给str2
str2.assign(n,'z') :把n个z字符赋值给str2
4、c=str1.at(n) :查找str1的第n个字符,赋值给c
5、num=str1.find(x) :查找字符x第一次出现的位置,赋值给num
6、num=str1.rfind(x) :查找字符x最后一次出现的位置,赋值给num
7、str1.replace(x,n,str2) :把str1从第x个字符开始的n个字符替换为str2
8、com=str1.compare(str2) :把str1与str2l进行比较(str1小,返回-1;str1大,返回1)
com=str1.compare(x,n,str2) :把str1从第x个字符开始的n个字符与str2进行比较
9、str2 = str1.substr(x, n) :把str1从第x个字符开始的n个字符赋值给str2
10、str1.insert(x, str2) :把str2插入到str1中,开始位置是x
str1.insert(x, n, 'z') :从str1的位置x,插入n个z
11、str1.erase(x, n) :删除str1从位置x开始的n个字符
12、str1.clear() :清空str1
13、str1.swap(str2) :交换str1与str2
下面是具体的代码示例:
# include
# include
using namespace std;
int main()
{
string peoPle, aniMal, gOd, sOn;
char mAn;
int num, com, len;
cin >> peoPle;
cin >> aniMal;
len = peoPle.length(); //获取peoPle的长度
cout << len << endl;
len = aniMal.size(); //获取aniMal的长度(同length)
cout << len << endl;
peoPle.append(aniMal,2,4); //把aniMal从第二个字符开始的4个字符追加到peoPle后面
cout << peoPle << endl;
gOd.assign(peoPle,3,2); //把peoPle从第3个字符开始的两个字符赋值给gOd
cout << gOd << endl;
gOd.assign(20,'X'); //把20个X字符赋值给gOd(覆盖上一次)
cout << gOd<< endl;
mAn=peoPle.at(4); //查找位置4的字符
cout << mAn << endl;
num = aniMal.find('j'); //查找j第一次出现的位置
cout << num << endl;
num = gOd.rfind('X'); //查找X最后一次出现的位置
cout << num << endl;
gOd.replace(2, 5, aniMal); //把gOd从第二个字符开始的5个字符替换为aniMal
cout << gOd << endl;
com=peoPle.compare(aniMal); //把peoPle与aniMal进行比较(peoPle小,返回-1)
cout << com << endl;
com = peoPle.compare(8,2,aniMal);//把peoPle从第8个字符开始的两个字符与aniMal进行比较
cout << com << endl;
sOn = peoPle.substr(3, 4); //把peoPle从第3个字符开始的4个字符赋值给son
cout << sOn << endl;
gOd.insert(10, peoPle); //把peoPle插入到gOd中,开始位置是10
cout << gOd << endl;
sOn.insert(2, 3, 'S'); //从sOn的位置2,插入3个S
cout << sOn << endl;
sOn.erase(1, 3); //删除sOn从位置1开始的3个字符
cout << sOn << endl;
sOn.clear(); //清空sOn
cout << sOn << endl;
cout << peoPle << endl;
cout << aniMal << endl;
peoPle.swap(aniMal); //交换peoPle与aniMal
cout << peoPle << endl;
cout << aniMal << endl;
return 0;
}
输出结果:
abcdefg
hijklmn
7
7
abcdefgjklm
de
XXXXXXXXXXXXXXXXXXXX
e
2
19
XXhijklmnXXXXXXXXXXXXX
-1
1
defg
XXhijklmnXabcdefgjklmXXXXXXXXXXXX
deSSSfg
dSfg
abcdefgjklm
hijklmn
hijklmn
abcdefgjklm
作为一个进阶的程序员,这是我个人很辛苦的的总结,欢迎大家浏览。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)