scanf和printf读入输出字符串的探讨
1. scanf读入char字符数组(char字符串)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int len;
char str[10000];
scanf("%d",&len);
for(int i=1;i<=len;i++)
{
scanf("%s",str);
printf("%s\n",str);
}
return 0;
}
2. cin.getline()整行读入char字符数组(char字符串)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
getchar();
for(int i=1;i<=n;i++)
{
char remp[50];
cin.getline(remp,10000);
cout<<remp<<endl;
printf("%s\n",remp);
cout<<strlen(remp)<<endl;
}
return 0;
}
3. getline()读入string字符串,并且用printf强转输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
getchar();
for(int i=1;i<=n;i++)
{
string remp;
getline(cin,remp);
cout<<remp<<endl;
cout<<remp.length()<<endl;
printf("%s\n",remp.c_str());
cout<<remp.length()<<endl;
}
return 0;
}
4. scanf和printf读入输出string
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
string remp;
scanf("%s",remp.c_str());
cout<<strlen(remp.c_str())<<endl;
cout<<remp.length()<<endl;
printf("%s\n",remp.c_str());
cout<<strlen(remp.c_str())<<endl;
}
return 0;
}
很有意思的是用scanf强转读入的string字符串,用其内置的length()函数求其长度竟然使用不了,将string强转为char数组再用strlen()求长度就能求出来了,真的很神奇