(1) 用等号直接赋值S0
(2) 定义一个空白变量S1
(3) 定义一个新变量S2,内容完全等于S0
(4) 定义一个新变量S3,内容是S0从第八个字符开始的三个字符
(5) 定义一个新变量S4,用括号赋值(和(1)作用效果一样,只不过过使用()来赋)
(6) 定义一个新变量S5,内容是””里面的前12个字符
(7) 定义一个新变量S6,内容是n=10个相同字符’x’。
总体展示:
因为string存在[ ]用法,所以可以用访问数组元素的方法来访问字符串。
例如string A = “ab cd ef ghijk.”
那么A[0]=’a’ , A[1]=’b’ , A[2]=’ ‘ .
上图就是遍历输出字符串str,输出结果就是“hello world”。后面又输出数组的下标为6的元素,即第七个元素‘w’。
图示用法:
字符串变量名.insert(位置,内容(或者定义好的字符串变量地址(名字)))。
在str4字符串中从下标6开始插入str3的下标0开始的7个字符的内容
在str4字符串中从下标13开始插入内容"to be"
在str4字符串中从下标19开始插入str2字符串
Str4内容:to be or not to be that is a question
只有两种:
第一种:从某个下标(图中是19)开始及其后面全部丢弃。
第二种:从某个下标(图中是0)开始的n个字符(图中是9)删掉。
用.clear()函数。清空后str4里面就无内容了
(1)加法(字符串的拼接)
(2)比较(用ASCII码从第一个字符开始进行字典比较)
1、 变量名.size()返回字符串长度(.size())
2、在字符串中寻找子串并返回子串第一个字符下标(.find())
两张图中:第二行加的10都是指定从哪个位置开始往后找
找不到就返回-1
3、返回子串(.substr())
分别是:
从13下标开始返回后面的所有字符形成的子串;
从13下标开始返回后面的3个字符形成的子串。
4、头文件:
(1)String.h = cstring ,都是C语言里的
(2)string是C++里的针对字符串这个类的,直接输入输出的话只能用cin,cout。不能用scanf,printf因为这两个是C的,无法用于C++特有的string类的输入输出必须改造一下字符串变量才行。
例:
1 2 3 |
|
这样不行,会报错。那么怎么解决这个问题呢?
很简单,只需要在变量后加一个“.c_str()”就行了。
具体代码段如下:
1 2 3 |
|
这是因为通过string类的c_str()函数能够把string对象转换成c中的字符串的样式。
(1)cin
针对数组字符串,cin遇到空格或回车键停止,只能输入没有空格的字符串,当输入中含有空格,则只能输出空格之前的字符;并且cin输入时会自动判断结尾,所以可以cin>>string1>>string2;这样同时输入多个字符串。
1 2 3 4 5 6 7 8 9 10 |
|
当输入:hello world 时,遇到回车键输出:hello;
(2)gets()
针对数组字符串,遇到回车键结束(有时与getchar()配合使用);
1 2 3 4 5 6 7 8 9 10 |
|
当输入:hello world 时,遇到回车键输出:hello world;
(3)cin.get()
针对数组字符串,可以接收空格,遇到回车键结束(有时与getchar()配合使用);
1 2 3 4 5 6 7 8 9 |
|
当输入:hello world 时,遇到回车键输出:hello world;
(4)getline()
针对string类型,可以接收空格,遇到回车键结束(有时与getchar()配合使用);
1 2 3 4 5 6 7 8 9 10 |
|
当输入:hello world 时,遇到回车键输出:hello world;
(5)cin.getline()
cin.getline()函数与cin.get()函数类似,可以接收空格,遇到回车键结束(有时与getchar()配合使用);cin.getline()是针对数组字符串的,以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止
1 2 3 4 5 6 7 8 9 |
|
当输入:hello world 时,遇到回车键输出:hello world;
(6)scanf遇到空格或者回车键结束(有时与getchar()配合使用);
1 2 3 4 5 6 7 8 9 |
|
当输入:hello world 时,遇到回车键输出:hello;
(7)让scanf可以接收空格,遇到回车键结束(有时与getchar()配合使用);
这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在“^“后面集合的字符,即遇到”^“后面集合的字符便停止。此时读入的字符串是可以含有空格的。
1 2 3 4 5 6 7 8 9 |
|
当输入:hello world 时,遇到回车键输出:hello world;
(7)-2、要加getchar() 的;
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
输入:11
hello world
输出:hello world;
(PS)C/C++关于字符串输入输出空格问题总结原文:C/C++关于字符串输入输出空格问题总结_qq_41555192yl的博客-CSDN博客_c 输入空格
ASCII码对照表
C++常用开头:
#include
#include
#include
using namespace std;