A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

输入字符串,调用函数change删除非字母字符,打印输出。怎么改都没弄出来,估计是进入误区了,求指教啊





7 个回复

倒序浏览
首先 你这个都没有用到Foundation框架的东西,为啥要 加这个头文件
其次  函数中重复定义了一个字符串 ss   
我感觉这个函数的循环应该判断不是字母的时候,如果不是字母则,str[j] = str[i];   初始条件为i = 0; j = 1;

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

说错了  应该是str = str[j];  哈哈
回复 使用道具 举报
不是小写ss【j】就没有值,好像ss【】没有\0结束标识,现在上代码最好
回复 使用道具 举报
★彬★卍囧神 发表于 2014-9-21 21:54
不是小写ss【j】就没有值,好像ss【】没有\0结束标识,现在上代码最好

没明白,这个涉及到指针,求一个“调用外部文件函数传入字符数组改变字符数组值”的例子哦,谢谢指导啊
回复 使用道具 举报
j++ 应该写在if语句里面(如果if条件不成立就不用j++)
回复 使用道具 举报
  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. }
复制代码

就写这么点了,自己看吧,有什么不理解的,继续问就好。(这代码没有实现用户输入)
回复 使用道具 举报
陆习康 发表于 2014-9-24 17:07
就写这么点了,自己看吧,有什么不理解的,继续问就好。(这代码没有实现用户输入) ...

看的明白,指针用的真溜,赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马