知识点总结:
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”用以标注字符串的结束;
2,scanf(“s”, s)
简略的说,scanf_s是为了避免scanf内存越界,也就是接收过多输入而创建的,所以在使用的时候必须明确将要接收多少个字符。由于这里会打印七个字符,加之字符串最后一个必然是’\0’,所以这里就给了十位
scanf是以空格作为定界符,相当于一个隔断,隔断两次变量的输入与赋值
cin版本
可以观察到,cin版本代码更少。cin会主动忽略诸如制表符,空格回车之类的特殊字符
用string函数实现字符串输入与输出
需要声明头文件:string
参考与引用:
scanf() 与 scanf_s()
https://blog.csdn.net/Abieri/article/details/106583262
正确使用scanf_s()
https://blog.csdn.net/Abieri/article/details/106583262
getline需要哪些头文件