一、字符串的输入输出方法
1.cin.getine(参1,参2,参3)
(1)需要搭配字符数组使用,不能和string联用,因为string长度不固定;
(2)cin.getline(char,size,)中size包含‘\0’的一个长度,所以设置size<=数组长度;
char位置放字符数组名,或者字符指针。
(3)默认回车为终止输入键;
(4)cout<<数组名<<endl; / /即可输出字符串;
#include<iostream>
using namespace std;
int main()
{
char line[5];
cin.getline(line,5);
cout << line << endl;
return 0;
}
2.cin
(1)可以用于输入任何类型的元素,不接收空格(用上本键后,其后元素输出不显示)、Tab键(同上)和回车(结束输入)。
(2) cout<<数组名<<endl; / /即可输出字符串;
字符串类型的输入
#include <iostream>
#include <string> //
using namespace std;
int main()
{
string a;
cin >> a;
cout << a<<endl;
return 0;
}
结合for循环输入
(实践发现能输入的有效长度不超过数组长度)
#include <iostream>
using namespace std;
int main()
{
char a[5];
for(int i=0;i<5;i++)
cin>>a[i];
for(int i=0;i<5;i++)
cout<<a[i];
return 0;
}
字符数组的整体输入
(实践发现,能输入的有效长度小于数组长度)
#include <iostream>
using namespace std;
int main()
{
char a[5];
cin >> a;//整体输入,输入的有效长度应<=4,有效长度即不包括空格,回车和Tab键;
cout << a;//整体输出;
return 0;
}
3.gets(str) (现用gets_s(str) )
(1)需要再加头文件 #include <cstdio>
(2)str为数组名或指针变量;
(3)同cin.getline()一样,可输入包含空格字符的字符串,以回车结束;
(4)系统自动添加‘\0’,所以输入长度小于字符数组长度;
(5)puts(str) 输出,输出完自动换行,要求字符数组(不是字符串类型)结尾是‘\0’;
eg:puts(str1,str2);//错误,一次只能输出一个字符串;
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char str[10];
gets_s(str);
puts(str);
return 0;
}
//gets()可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值(来自CSDN搜索),所以改用gets_s(char,size),在VS里size写不写都可以运行。(来自自我实践)
以上文字如有任何问题,欢迎大家评论纠正!