String类型的用法(详细解说)

对于字符串,除了按照C语言的字符数组处理外,C++还提供了一种更加简单的处理方法,那就是string类。使用string类的第一步是采用#include包含头文件<string>。

接下来介绍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 <iostream>
# include <string>
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

作为一个进阶的程序员,这是我个人很辛苦的的总结,欢迎大家浏览。
   

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值