字符串的输入输出
1.gets()
#include <iostream>
using namespace std;
int main()
{
char s[10];
for(int i = 0;i <= 9;++i)
s[i] = '\0';
gets(s);
for(int i = 0;i <= 6;++i)
cout << i << ":" << (int)s[i] << endl;
}
输入缓冲区:abc空格d制表符回车
gets()不接受回车符
2.scanf
2.1 scanf输入一个字符
#include <iostream>
using namespace std;
int main()
{
char s[10];
for(int i = 0;i <= 9;++i)
s[i] = '\0';
scanf("%s",s);
for(int i = 0;i <= 6;++i)
cout << i << ":" << (int)s[i] << endl;
}
输入缓冲区:abc空格d制表符回车
scanf以空格等特殊字符为当前串接收结束标记
2.2 scanf输入多个字符
#include <iostream>
using namespace std;
int main()
{
char s1[10],s2[10];
for(int i = 0;i <= 9;++i){
s1[i] = '\0';
s2[i] = '\0';
}
scanf("%s%s",s1,s2);
for(int i = 0;i <= 6;++i)
cout << i << ":" << (int)s1[i] << endl;
cout << endl;
for(int i = 0;i <= 6;++i)
cout << i << ":" << (int)s2[i] << endl;
}
输入缓冲区:abc空格de回车
scanf输入多个字符串时,不接收特殊字符,因为用特殊字符作为多个字符串的定界符
3 cin>>
#include <iostream>
using namespace std;
int main()
{
char s[10];
for(int i = 0;i <= 9;++i)
s[i] = '\0';
cin>>s;
for(int i = 0;i <= 6;++i)
cout << i << ":" << (int)s[i] << endl;
}
输入缓冲区:abc空格d制表符回车
cin不接受特殊字符,把特殊字符作为当前串输入结束标记,和scanf一样
4.getline()
#include <iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
for(int i = 0;i <= s.length();++i)
cout << i << ":" << (int)s[i] << endl;
}
输入缓冲区:abc空格d制表符回车
getline(cin,s)不接收回车符,和gets()一样
【注】1.gets、scanf、cin会自动在串尾补上一个’\0’字符作为字符串的结束标记
2.用puts(s); printf(“%s”,s); cout>>s; 可以输出字符串,都是输出从第一个字符到’\0’之前的所有字符,并且puts会自动换行
3.如果s为string类型 ,用cout<<s来输出串
记
2.用puts(s); printf(“%s”,s); cout>>s; 可以输出字符串,都是输出从第一个字符到’\0’之前的所有字符,并且puts会自动换行
3.如果s为string类型 ,用cout<<s来输出串