知识点总结:

gets, scanf和cin都会在字符串串尾自动补上一个’\0’作为字符串的结束标识;

用put(s), printf(“%s”, s)或者cout >> s可以输出字符串,事实上,这三个函数都是输出从第一个字符到’\0’之前的所有字符,并且puts会自动换行;

如果s为string类型,这可以用cout<char s[maxSize];

gets(s);

scanf(“%s”, s);
1, gets(s)不接收回车符号,gets(s)会在每次字符串结束自动添加一个”\0”用以标注字符串的结束;
image.png


2,scanf(“s”, s)

简略的说,scanf_s是为了避免scanf内存越界,也就是接收过多输入而创建的,所以在使用的时候必须明确将要接收多少个字符。由于这里会打印七个字符,加之字符串最后一个必然是’\0’,所以这里就给了十位

scanf是以空格作为定界符,相当于一个隔断,隔断两次变量的输入与赋值
image.png


image.png


cin版本

可以观察到,cin版本代码更少。cin会主动忽略诸如制表符,空格回车之类的特殊字符
image.png


image.png


用string函数实现字符串输入与输出

需要声明头文件:string
image.png


参考与引用:

scanf() 与 scanf_s()
https://blog.csdn.net/Abieri/article/details/106583262

正确使用scanf_s()
https://blog.csdn.net/Abieri/article/details/106583262

getline需要哪些头文件

https://zhidao.baidu.com/question/486533292.html