【C++】String用法总结

笔者在刷题的过程中,发现部分语法容易遗忘,因此本系列刷题笔记想要记录一些常用语法,便于复习巩固,本系列内容根据刷题进度同步更新。

一、String字符串

1、头文件

#include <string>

2、String的创建和初始化

string str;//定义字符串变量
string str1 = "hello";//定义字符串变量同时赋初值
str = str1;//把str1复制给str
string str2(3, 'a');//创建一个包含n个元素的字符串,每个元素初始化为指定元素,输出结果为“aaa”
string str3("value");//定义字符串变量同时赋初值
string str4(str3);//把str3赋值给str4

3、String的读写操作

(1)使用cin读取键盘输入的值

string对象会自动忽略开头的空白(既空格、换行符、制表符等),并从第一个真正的字符开始读入,遇到“空格”、“TAB”、“回车”结束。

string str;//定义字符串变量
cin >> str; //使用cin对字符串进行赋值
cout << str << endl;//使用cout输出字符串

(2)使用getline()读取行

getline的函数格式:getline(cin,string对象)
getline的作用是读取一整行,直到遇到换行符才停止读取,期间能读取像空格、Tab等的空白符。

string str1;
getline(cin, str1);//读取一行为str1赋值
cout << str1 << endl;

注意:getline函数和cin一样,也会返回它的流参数,也就是cin,所以可以用getline循环读取一行。

string str1;
while(getline(cin, str1))//循环读取一行为str1赋值
	cout << str1 << endl;

4、字符串的拼接操作

连接字符串 str2 到字符串 str1 的末尾。c++兼容C语言的strcat()函数。

string str1 = "Hello";
string str2 = "world";
strcat(str1,str2);//C语言中使用strcat()对字符串进行拼接
str2=str1+str2;//C++中使用“+”号对字符串进行拼接
str2+=str1;相当于str2 = str2 + str1
str1.append(str2);//把str2加到str1后面

当string对象和字符或字符串字面值相加时,必须确保+号的两侧的运算对象至少有一个string。

string str3 = str1 + ','+ str2+ '\n';//string对象与字符相加

5、字符串的比较操作

string可以使用比较运算符、compare()或者C语言中的strcmp(s1, s2)函数进行比较操作。只要有一个字符不等或者某一个字符串多一个字符,那么string就不相等。

(1) 比较运算符(>、<、==)

if(str1 > str2)
	cout << str1 << "大于" << endl;
else if(str1 < str2)
	cout << str1 << "小于" << endl;
else
	cout << str1 << "等于" << endl;

(2) compare()

string对象中的成员函数compare()可以比较字符串。

若 str=指定的字符串,str.compare()返回0
若 str>指定的字符串,str.compare()返回正数
若 str<指定的字符串,str.compare()返回负数

int ret = str1.compare(str2);//比较str1和str2

(3) strcmp(str1,str2)

strcmp(str1,str2)函数是根据ACSII码的值来比较两个字符串的;strcmp(str1,str2)函数首先将str1字符串的第一个字符值减去str2第一个字符,若差值为零则继续比较下去;若差值不为零,则返回差值。

若 str1 和 sttr2 是相同的,则返回 0
若 str1<str2 则返回值小于 0
若 str1>str2 则返回值大于 0

int ret = strcmp(str1, str2);

6、获取字符串的长度

对于string对象 ,str.length()和str.size()是同义词,返回字符串中字符的长度,不包括‘/0’。
除此之外,size()函数还可以获取vector类型的长度。

int len1 = str.size();//获取字符串的长度
int len2 = str.length();//获取字符串的长度

7、获取子字符串

string s = str.substr(n,m);//从str的第n个字符开始取m个字符

8、获取字符串中的某个字符

char ch1 = str[n];//获取字符串str中的第n个字符
char ch2 = str.at(n);//获取字符串str中的第n个字符

猜你喜欢

转载自blog.csdn.net/weixin_44842318/article/details/127062486