首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求宗师解答,谢

2013-12-07 
求大师解答,谢最近开始学习字符串与指针常量等译相关的知识,总感觉听不懂,有的编程题看命白了,但是让自己

求大师解答,谢
  最近开始学习字符串与指针常量等译相关的知识,总感觉听不懂,有的编程题看命白了,但是让自己去编写时又是另一回事。如下面的这个小编程题:输入一个不超过80个字符的字符串,将其中所有的字符“¥”换成s。
     #include<stdio.h>
void main()
{  char str[80];
   int i=0;
   printf("input:")
   scanf("%s",str);
   for(i=0;i<80;i++)   
      {if(str[i]!='\0')
  if(str[i]=='$')
   str[i]='S';
           }         
   puts(str);
}
总感觉这样作应该是对的,但是一运行就错了。求大师帮忙解答,哪个地方错了,应该如何修改。谢谢
      

[解决办法]
要检查str字符串长度,防止溢出
[解决办法]
大概是你的字符数组输入完毕之后没有‘\0’, puts打印溢出。
[解决办法]
断点调试,想想原因
[解决办法]
 scanf("%79s",str);

热点排行