返回

c++string字符串

发布时间:2023-02-09 01:17:56 284
# git

标准库string表示可变长的字符序列,使用string类型不要包含string头文件

#include 
using std::string;
string对象的初始化
string s1; //空字符串
string s2 = s1; //s2是s1的副本
string s3 = "abc"; //使用字符串
string s3("abc");
string s4(10,'c'); //内容是10个c

string操作

读写string对象

 

cin >> s1 >> s2;

将标准输入的内容第一个放到s1中,第二个放到s2中,string对象会自动忽略开头的空白,并从第一个真正的字符开始读取,直到遇到下一处空白为止。

如果希望能在最终得到的字符串中保留输入的空白符需要使用getline函数代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容一直到遇到换行符为止,然后把所读取的内容存入到string对象中取。getline只要一遇到换行符就结束读取操作并返回结果。getline返回结果是输入流,所以可以当做判断条件。

 

string line;
while(getline(cin,line))
cout << line <<endl;

这样每次读取一行进行输出。

empty()函数是判断字符串是否为空,size()函数获取字符串长度,返回的类型是string::size_type,是一个无符号值,需要注意的是size()的返回值不要和有符号类型的值进行运算。

字符串进行拼接的话直接使用+,每个加法运算两边的对象至少有一个是string。

string s1 = "abc";
string s2 = "ggg";
string s3 = s1 + s2;
string s4 = s1 + ","+ s2;
string s5 = "hello"+","+ s1; //这样是不允许的
string s6 = s1 +"," + "hello"; //这样可以,s1+","返回的是string类型

循环字符串中的每个字符

string str("hello world");
for(auto c:str){
cout << c << endl;
}

有对其中某个字符的判断函数,需要引入#include

isalnum(c) //字母或数字为真
isalpha(c) //字母为真
isdigit(c) //数字为真
islower(c) //小写字母为真
isspace(c) //空白为真
isupper(c) //大写字母为真

如果想改变字符串中的字符,需要把循环变量定义为引用类型

string s("hello world");
for(auto &c : s){
c = toupper(c); //转换成大写
}
cout << s << endl;

也可以使用下标进行访问某个字符,从0开始到size()-1

string s("hello world");
s[0] = toupper(s[0]); //把第一个字符转换成大写
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
创建my_strstr函数 2023-02-09 00:30:04