这段程序有何问题

jasmine 2011-05-09 02:15:51
#include<stdio.h>
#include<string.h>
void main()
{int i;
char str[80];
for(i=0;str[i]!='\0';i++)
getchar(str[i]);
for(i=0;str[i]!='\0';i++)
putchar(str[i]);
system("pause");
}
...全文
178 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
我真的是琦琦 2011-05-10
  • 打赏
  • 举报
回复
str[80]如果初始化为0的话,这个for循环有什么意思呢~~~~~
而且这样循环会越界的~~~~
AnYidan 2011-05-10
  • 打赏
  • 举报
回复
char str[80]; 是局部变量,你无法保证其初始值,如果str[0]=0 呢?

for(i=0;i<78;i++)
{
if (getchar(str[i])=='\0')
break;
}

if (i==78) str[79] ='\0';
suozhiwoai 2011-05-10
  • 打赏
  • 举报
回复
system("pause");加上之后 应该把头文件#include <stdlib.h>包含进去
jialejiahi 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ladyf 的回复:]
楼上的童鞋
我照你的意见修改以后
输入数据
输出页面自动关闭无显示
[/Quote]
那就把你原来的 system("pause");加上
紫回蓝 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ladyf 的回复:]
楼上的童鞋
我照你的意见修改以后
输入数据
输出页面自动关闭无显示
[/Quote]
使用Ctrl+F5运行,可以看到结果
jasmine 2011-05-09
  • 打赏
  • 举报
回复
楼上的童鞋
我照你的意见修改以后
输入数据
输出页面自动关闭无显示
jialejiahi 2011-05-09
  • 打赏
  • 举报
回复
略改一下

#include<stdio.h>
#include<string.h>
void main ()
{
int i;
char str[80];
for (i = 0; (str[i] = getchar ()) != '\n'; i++)
;
for (i = 0; str[i] != '\n'; i++)
putchar (str[i]);
printf ("\n");
}
子达如何 2011-05-09
  • 打赏
  • 举报
回复
char str[80];没有初始化
char str[80] = {0};
但是,初始化之后后面也错,因为初始化成0的话,你的输入将一个也不进行。
LZ你到底想干嘛?
赵4老师 2011-05-09
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>
void main()
{int i;
char str[80];
str[79]=0;
for(i=0;str[i]!='\0';i++)
getchar(str[i]);
for(i=0;str[i]!='\0';i++)
putchar(str[i]);
system("pause");
}
bdmh 2011-05-09
  • 打赏
  • 举报
回复
你这代码有可能不执行,因为str可能内部就是0,还有getchar是这么用吗,getchar不需要参数
张小毛 2011-05-09
  • 打赏
  • 举报
回复
绝望的路过,热死了
jialejiahi 2011-05-09
  • 打赏
  • 举报
回复
getchar(str[i]);
改成:
str[i] = getchar();
selooloo 2011-05-09
  • 打赏
  • 举报
回复
会越界的

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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