以下程序的输出结果是(itis)但是我不懂答案是怎么来的,初学C语言,请解释详细一些,谢谢

2024年11月15日 18:32
有5个网友回答
网友(1):

你用什么编译器编的?我怎么运行结果是P都没有呢?

#include "string.h"
#include "ctype.h" 
void fun(char str[])//这里漏了右括号
{int i,j;
  for(i=0,j=0; str[i] ;i++)
  if(isalpha(str[i]))//isalpha函数判断字符是否为英文字符(包括大小写),你这里第一个字符就是英文字符,自然被赋字符串结束符。结果你这个字符串一开始就是结束,所以啥都输不出。
  str[j]='\0';//上面j只赋了0就没在改动,你这应当是i才对吧?

main()
{char  ss[80]="it  is!";
fun(ss);//这里漏了分号,初学者最容易漏这个。
printf("%s\n",ss);
}

网友(2):

i=0的时候,str[i] = i,isalpha 为真,所以执行str[j] = '\0',此时j = 0,所以ss的第一个字符就是\0 了。绝对输出不了itis

网友(3):

isalpha在程序里面起的作用,所以输出这样的结果

网友(4):

答案肯定是空

网友(5):

你的编译器该换换了..分号都不提示..牛X