注册 登录
编程论坛 C++教室

为何结果错误

a99875984 发布于 2012-09-21 20:18, 243 次点击
程序代码:
#include <iostream>

 #include <string>

 using namespace std;

 int length(char *str)

 {
     int len;
     len=strlen(str);
     return len;

 }

 char reverse(char *str)

 {
     char b;
     int len,i;
     len=length(str);
     for(i=0;i<len/2;i++)
     {
         b=str[i];
         str[i]=str[len-i-1];
         str[len-i-1]=b;
     }
     for(i=0;i<len;i++)
         cout<<str[i]<<'  ';
     cout<<endl;
     return  0;

 }

 int main()

 {
     char str[100];
     while(cin.getline(str,100))
     {
         cout<<length(str)<<endl;
         reverse(str);
     }
     return 0;

 }

请问下,哪里错了,输入789WER后倒置的结果为何输出的是一些不相关的
3 回复
#2
pangding2012-09-21 20:44
想来是字符串结尾的 '\0' 之类的没处理好。想想字符串的长度为奇数或者偶数的情况,是不是 len/2 都对呀,之类的也许也有帮助。这种些小问题要考虑到才行。
#3
a998759842012-09-21 21:02
回复 2楼 pangding
难道粗心的人不适合学编程
#4
pangding2012-09-21 21:22
以下是引用a99875984在2012-9-21 21:02:22的发言:

难道粗心的人不适合学编程

编程也许能使你变细心。
1