读书人

1道C++的题目实在搞不懂

发布时间: 2013-08-09 15:16:24 作者: rapoo

1道C++的题目,实在搞不懂,求高手指教
说明:提示用户输入一个字符串,然后反转此字符串,如果用户输入的是hello world,则新字符串为dlrow olleH。

#include<iostream.h>
#include<string.h>
int main()
{
char str[50],newstr[50];
int i;
cout <<"\n输入一个字符串:";
cin >> str;
for(i=0;i<50;++i)
{
newstr[i]=str[50-i];
}
for(i=0;i<50;++i)
{
cout << newstr << endl;
}
return 0 ;
}

这个程序怎么改?我改了半天依然没解决问题。谢谢高手们指导! C++
[解决办法]

#include <iostream>  //c++中头文件不用加.h
#include <string>
using namespace std; // 你忘了这个

int main()
{
char str[50],newstr[50];
int i;
cout <<"\n输入一个字符串:";
//cin >> str;
cin.getline(str,50); //改成行输入,可以带空格
int len = strlen(str); //计算str的长度
for(i = 0; i < len ; ++i)
{
newstr[i] = str[len-i-1];
}
newstr[len] = '\0'; //最后加个结束符
cout << newstr << endl; //直接输出字符串,不需要for循环一个个输出
/*
for(i=0;i<50;++i)
{
cout << newstr << endl;
}
*/
return 0 ;
}

读书人网 >C++

热点推荐