黑马程序员技术交流社区

标题: 练习的时候遇到问题,感觉挺简单就是弄不出来,求指教! [打印本页]

作者: AngleMGG    时间: 2014-9-21 13:52
标题: 练习的时候遇到问题,感觉挺简单就是弄不出来,求指教!
输入字符串,调用函数change删除非字母字符,打印输出。怎么改都没弄出来,估计是进入误区了,求指教啊






作者: 七年级生    时间: 2014-9-21 14:09
首先 你这个都没有用到Foundation框架的东西,为啥要 加这个头文件
其次  函数中重复定义了一个字符串 ss   
我感觉这个函数的循环应该判断不是字母的时候,如果不是字母则,str[j] = str[i];   初始条件为i = 0; j = 1;

我也是菜鸟   但愿对你有一点点帮助
作者: 七年级生    时间: 2014-9-21 14:11
七年级生 发表于 2014-9-21 14:09
首先 你这个都没有用到Foundation框架的东西,为啥要 加这个头文件
其次  函数中重复定义了一个字符串 ss   ...

说错了  应该是str = str[j];  哈哈
作者: ★彬★卍囧神    时间: 2014-9-21 21:54
不是小写ss【j】就没有值,好像ss【】没有\0结束标识,现在上代码最好
作者: AngleMGG    时间: 2014-9-21 22:07
★彬★卍囧神 发表于 2014-9-21 21:54
不是小写ss【j】就没有值,好像ss【】没有\0结束标识,现在上代码最好

没明白,这个涉及到指针,求一个“调用外部文件函数传入字符数组改变字符数组值”的例子哦,谢谢指导啊
作者: 庄得超    时间: 2014-9-24 12:42
j++ 应该写在if语句里面(如果if条件不成立就不用j++)

作者: 陆习康    时间: 2014-9-24 17:07
  1. #include <stdio.h>
  2. void change();
  3. int main()
  4. {
  5.         char a[20] ="sb520";
  6.         change(a);
  7.         return 0;
  8. }
  9. void change(char *b)
  10. {
  11.         char c[20]="";
  12.         int i=0;
  13.         while(*b)
  14.         {
  15.                 if(( *b>='a' && *b<='z' ) || ( *b>='A' && *b<='Z'))
  16.                 {
  17.                         c[i] = *b;
  18.                         i++;
  19.                         b++;
  20.                 }
  21.                 else
  22.                 {
  23.                         b++;
  24.                 }
  25.         }
  26.         printf("%s",c);
  27. }
复制代码

就写这么点了,自己看吧,有什么不理解的,继续问就好。(这代码没有实现用户输入)
作者: AngleMGG    时间: 2014-9-24 19:29
陆习康 发表于 2014-9-24 17:07
就写这么点了,自己看吧,有什么不理解的,继续问就好。(这代码没有实现用户输入) ...

看的明白,指针用的真溜,赞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2