C++字符串string类常用操作详解(一)【初始化、遍历、连接】

25
四月
2021

代码示例:

#include <iostream>
#include "string"
 
using namespace std;
 
//字符串初始化
void strInit()
{
	cout << "字符串初始化:"  <<endl;
 
	string s1 = "abcdefg";	//初始化方式1
	string s2("abcdefg");	//初始化方式2
	string s3 = s2;			//通过拷贝构造函数 初始化s3
	string s4(7,'s');		//初始化7个s的字符串
 
	cout << "s1 = "<< s1 << endl;
	cout << "s2 = "<< s2 << endl;
	cout << "s3 = "<< s3 << endl;
	cout << "s4 = "<< s4 << endl;
}
 
//字符串遍历
void strErgo()
{
	cout << "字符串遍历:"  <<endl;
 
	string s1 = "abcdefg";	//初始化字符串
	
	//通过数组方式遍历
	cout << "1、通过数组方式遍历:"  <<endl;
	for (int i = 0; i < s1.length(); i++)
	{
		cout << s1[i] << " ";
	}
	cout << endl;
 
	//通过迭代器遍历
	cout << "2、通过迭代器遍历:"  <<endl;
	for(string::iterator it = s1.begin(); it!= s1.end(); it++)
	{
		cout << *it << " ";
	}
	cout << endl;
 
	//通过at()方式遍历
	cout << "3、通过at()方式遍历:"  <<endl;
	for (int i = 0; i < s1.length(); i++)
	{
		cout << s1.at(i) << " ";		//此方式可以在越界时抛出异常
	}
	cout << endl;
}
 
//字符指针和字符串的转换
void strConvert()
{
	cout << "字符指针和字符串的转换:"  <<endl;
	string s1 = "abcdefg";	//初始化字符串
 
	cout << "string转换为char*:"  <<endl;
	//string转换为char*
	cout << s1.c_str() <<endl;	//s1.c_str()即为s1的char *形式
 
	cout << "char*获取string内容:"  <<endl;
	//char*获取string内容
	char buf[64] = {0};
	s1.copy(buf, 7);//复制7个元素
	cout << buf <<endl;
}
 
//字符串连接
void strAdd()
{
	cout << "字符串连接:"  <<endl;
 
	cout << "方式1:"  <<endl;
	string s1 = "123";
	string s2 = "456";
	s1 += s2;
	cout << "s1 = "<< s1 << endl;
 
	cout << "方式2:"  <<endl;
	string s3 = "123";
	string s4 = "456";
	s3.append(s4);
	cout << "s3 = "<< s3 << endl;
}
int main()
{
	//初始化
	strInit();
	cout << endl;
	//遍历
	strErgo();
	cout << endl;
	//字符指针类型和字符串转换
	strConvert();
	cout << endl;
	//字符串连接
	strAdd();
	cout << endl;
	system("pause");
	return 0;
}

程序运行结果:

字符串初始化:
s1 = abcdefg
s2 = abcdefg
s3 = abcdefg
s4 = sssssss

字符串遍历:
1、通过数组方式遍历:
a b c d e f g
2、通过迭代器遍历:
a b c d e f g
3、通过at()方式遍历:
a b c d e f g

字符指针和字符串的转换:
string转换为char*:
abcdefg
char*获取string内容:
abcdefg

字符串连接:
方式1:
s1 = 123456
方式2:
s3 = 123456

请按任意键继续. . .
————————————————
版权声明:本文为CSDN博主「lesliefish」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/y396397735/article/details/48596035
TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员