C++编写程序将一个字符串首尾互换(如"I am happy!",处理后"!yppah ma I"

#include<iostream.h>
#define N 100
void main()
{int i,n;
char c[N],d[N];
cout<<"请输入字符串长度";
cin>>n;
cout<<"请输入字符串:";
for(i=0;i<n;i++)
cin>>c[i];
for(i=0;i<n;i++)
d[n-1-i]=c[i];
for(i=0;i<n;i++)
cout<<d[i];
} 怎么处理空格,求更好的程序

#include<iostream.h>
#define N 100

void main()
{int i,n;
char c[N],d[N];
cout<<"请输入字符串长度";
cin>>n;
cin.ignore( 1024, '\n' ); /*清理'\n'*/
cout<<"请输入字符串:";
cin.unsetf( ios::skipws ); /*不跳过空格*/
for(i=0;i<n;i++)
cin>>c[i];
for(i=0;i<n;i++)
d[n-1-i]=c[i];
for(i=0;i<n;i++)
cout<<d[i];
}

另一种方法,用cin.getline

#include <iostream.h>

void main()
{
char a[100], t;
int i = 0, j = 0;
cin.getline( a, 100 );
while ( a[j+1] ) ++j;
while ( i < j ) {
t = a[i];
a[i] = a[j];
a[j] = t;
++i; --j;
}
cout << a << endl;
}

此外还可以使用STL的string和reverse函数等等,这里就不列举了。。
温馨提示:答案为网友推荐,仅供参考