标题: 一个关于cin输入字符串的问题 [打印本页] 作者: 黒設會 时间: 2009-11-3 01:37 标题: 一个关于cin输入字符串的问题 #include<iostream.h>
#include<string.h>
#include<stdio.h>
int main()
{
int N;
int n;
int i,j,k,index,length,x,m;
char s[100];
cin>>N; //先输入N
cout<<endl;
for(i=0;i<N;i++)
{
cin>>n; //再输入n
for(j=0;j<n;j++)
{
gets(s);
m=0;
length=strlen(s);
for(k=0;k<length+1;k++)
if(s[k]==' '||s[k]=='\0')
{
index=k;
for(x=index-1;x>=m;x--)
{
cout<<s[x];
}
if(index!=length)
cout<<" ";
m=index+1;
}
cout<<endl;
}
if(i!=N-1)
cout<<endl;
}
return 0;
}
这个程序是输入一行字符后,反序输出
Sample Input
1
3
I am happy today
To be or not to be
I want to win the practice contest
Sample Output
I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc
想问一下在C++中如何读入一行字符,题中gets(s)换成cin.getline(s,100)好像不行,有其它的方法吗?
大家帮帮忙.作者: 烟灰缸2 时间: 2009-11-3 01:37
直接用cin输入就行拉,如:
char x[100];
cin>>x;
cout<<x<<endl;作者: 青松 时间: 2009-11-3 01:37
用cin好像不行,cin提供输入的时候会自动以空格作为分界
所以cin并不能读入一行字符作者: √我爱你 时间: 2009-11-3 01:37
用getline好了作者: 依然范特西 时间: 2009-11-3 01:37
题中gets(s)换成cin.getline(s,100)是可以的 我在VC++上试过作者: 36D--的咪咪 时间: 2009-11-3 01:37
#include <iostream>
using namespace std;
#include <string>
int main()
{
string stra;
int ia;
getline(cin, stra);
for (ia = stra.size() - 1; ia >= 0; ia--)
{
cout.put(stra[ia]);
}
cin.get();
cin.get();
}