这篇文章主要讲解了“怎么使用C++中的string类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C++中的string类型”吧!
在C++
当中,除了char *
类型,还有专门的字符串类型,就叫做string
。
通过包含头文件string就可以使用:
include<string>
在很多方面,string类型的使用方法和char *一样,例如:
string str1; string str2 = "hello world"; // 初始化和char *一致 cout << str2 << endl; // cout和char *一致 cout << str[2] << endl; // 元素访问和char *一致
除此之外,它还有一个更大的好处,就是当我们从外界读入字符串的时候,再也不用操心读入的字符串超界的问题了。因为string
类设计可以让程序自动处理字符串的大小。
string str1; cin >> str1;
我们也可以使用C++11的列表初始化特性在string
上,不过其实没必要,直接使用等于号赋值更方便一些:
string str1 = {"hello world"}; string str2 {"test"};
在使用char *
的时候,如果我们要拼接两个字符串,需要调用函数strcat
来实现。而有了string
,我们可以直接使用加号来拼接两个字符串:
string str1 = "hello"; string str2 = "world"; string str3 = str1 + str2;
不仅如此,还可以使用+=,表示把另外一个字符串添加在自己末尾:
str1 += str2; // 等价于str1 = str1 + str2
对于char *的字符串,我们要求长度,需要使用strlen
函数。而string
类型的字符串,我们可以直接调用.size
()函数:
string str = "hello"; cout << str.size() << endl; // output 5
前文说了,string
类的cin
和cout
用法都和char *
完全一致,不过在读取一行的时候有些区别。
char st[100]; cin.getline(st, 100); string str; getline(cin, str);
对于char *
来说,我们调用的cin.getline
表示的是cin
中的一个方法。而后者,我们调用的getline
传入了cin,这里的cin
是一个传入的参数,并且也没有指定长度,因为string
会自动设定长度。
关于string
类型,C++11有一个原始字符串的新特性。
在字符串表示当中,当我们要添加一些特殊字符的时候,往往需要在前面加上反斜杠,表示取义。
当这类字符多了之后,就会很麻烦:
cout << "i want to output \"hello world\"" << endl;
如果我们要换行,还要在其中加入\n
。针对这个问题C++11提出了原始字符串,也就是说在原始字符串当中所有的符号都会被原本原样地输出,不需要再使用\来取义了。
原始字符串以"R(开头)"结尾,`比如刚才的内容就可以写成:
cout << R"(i want to output "hello world")" << endl;
不仅如此,我们还可以随意换行:
cout << R"(i want to output "hello world")" << endl;
但是有一个小问题,假如我们想要输出的结果当中也包含"(该怎么办呢?也有办法,编译器允许我们在"和(之间加入任意的字符来做区分(空格、左括号、右括号、斜杠、控制字符除外),这样我们在结尾的时候,也需要加上同样的字符。例如:
cout << R"tst("(test)")tst" << endl;
运行之后,屏幕上会输出"(test)"的结果。
感谢各位的阅读,以上就是“怎么使用C++中的string类型”的内容了,经过本文的学习后,相信大家对怎么使用C++中的string类型这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。