为什么没有预期的结果

cecwxf 2011-04-30 05:22:36
函数功能:输入字符串,然后再逆序输出。
为什么没有预期的结果??错在哪??
代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXLENGTH_STRING 20
void reverse(char str[]);
int main()
{
char re_string[MAXLENGTH_STRING+1];
printf("please enter 字符串\n");
reverse(re_string);
printf("%s\n",re_string);
return 0;

}

void reverse(char str[])
{
int ch,i=(MAXLENGTH_STRING+1);

while((ch=getchar())!='\n')
{
if(i>0)
str[i--]=ch;
}
str[i]='\0';

}
结果没有。输出烫烫 或者什么都没输出。是指针传递啊。
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cecwxf 2011-04-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 c_losed 的回复:]

C/C++ code

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXLENGTH_STRING 20
void reverse(char str[]);
int main()
{
char re_string[MAXLENGTH_STRING+1];
printf("please en……
[/Quote]
你这个也好,呵呵,谢谢
cecwxf 2011-04-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hnuqinhuan 的回复:]

可以再输入之后再计算长度然后在逆序
[/Quote]
对 没注意这点,呵呵 谢谢~~~~
無_1024 2011-04-30
  • 打赏
  • 举报
回复
可以再输入之后再计算长度然后在逆序
c_losed 2011-04-30
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXLENGTH_STRING 20
void reverse(char str[]);
int main()
{
char re_string[MAXLENGTH_STRING+1];
printf("please enter 字符串\n");
scanf("%s", re_string);
reverse(re_string);
printf("%s\n",re_string);
return 0;

}

void reverse(char str[])
{
char ch;

int s = strlen(str);

for( int i = 0; i < s / 2; i++)
{
ch = str[i];
str[i] = str[s - i - 1];
str[s - i - 1] = ch;
}


}
無_1024 2011-04-30
  • 打赏
  • 举报
回复
你这样写就已经限制了输入的字符的个数
無_1024 2011-04-30
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXLENGTH_STRING 20
void reverse(char *str);
int main()
{
char re_string[MAXLENGTH_STRING+1];
printf("please enter 字符串\n");
reverse(re_string);
printf("%s\n",re_string);
return 0;
}

void reverse(char *str)
{
int ch,i=(MAXLENGTH_STRING-1);//必须每次都输入MAXLENGTH_STRING个字符
while((ch=getchar())!='\n')
{
if( i >= 0 )
{
str[i]=ch;
i--;
}
}
str[MAXLENGTH_STRING]='\0';
printf("%s\n",str);
}

cecwxf 2011-04-30
  • 打赏
  • 举报
回复
上面写错了 应该是i=MAXLENGTH_STRING;
cecwxf 2011-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnuqinhuan 的回复:]

不是这样逆序的
[/Quote]这样逆序为什么不行???应该怎么样??谢谢指点
無_1024 2011-04-30
  • 打赏
  • 举报
回复
不是这样逆序的

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧