一道C的题,不会做,麻烦各位看一下。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fun(char str[])
{ int t, j;
for(i=0,j=0;str[i];i++) 这个地方还是增强点代码的可读性的好 搞那么多挤一起有毛病 判定语句 str[i] 搞成 str[i]!='\0'
if (isalpha(str[i])) str[j++]=str[i]; 有个建议 少用 j++ ++j 什么的 不同的机器处理方式不同 这个是以前谭老师书上说的 但是C语言程序设计 里 说 a=++j 的结果是a=j+1 a=j++ 的结果是a=j 我在机器上测试过 后者是对的
='\0'; -------->这个地方换成a[j++]='\0'
}
main()
{ char ss[80] ="It is!";
fun(ss); printf("%s\n",ss);
}
问一下各位这个程序错在哪里,最后结果是多少? 最后结果死循环一个 尼玛isalpha() 这个函数就是为了检查是不是英文字母 有必要 么
最后评价 这个完全是某某考试的题目,对于出这样题目的老师 我敢说他就是个白痴,傻B 一个不常用的函数 一个可以随便实现的破函数,拿出来显摆,for()循环语句完全不考虑代码的易读性