标题:一个关于cin输入字符串的问题
只看楼主
ddx8773
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-4-3
 问题点数:0 回复次数:5 
一个关于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)好像不行,有其它的方法吗?
大家帮帮忙.

搜索更多相关主题的帖子: cin 字符 int include 输入 
2006-04-29 17:56
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
得分:0 

直接用cin输入就行拉,如:
char x[100];
cin>>x;
cout<<x<<endl;


不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2006-04-29 18:26
ddx8773
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-4-3
得分:0 
用cin好像不行,cin提供输入的时候会自动以空格作为分界
所以cin并不能读入一行字符

2006-04-29 19:10
jedimaster
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2006-3-31
得分:0 
用getline好了
2006-04-29 22:51
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
得分:0 
题中gets(s)换成cin.getline(s,100)是可以的  我在VC++上试过

看越多书就发现自己越无知 于是就越想知道更多
2006-04-30 14:35
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 

#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();
}


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-04-30 16:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-61161-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.117777 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved