以下程序的功能是将宁符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf4568h,执行程序后输出:123456。请填空。 #include <stdio.h> #include <ctype.h>

admin2009-01-15  17

问题 以下程序的功能是将宁符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf4568h,执行程序后输出:123456。请填空。
   #include  <stdio.h>
   #include  <ctype.h>
   main()
   {  char  s[80],d[80];   int i,j;
      gets(s);
      for(i=j=0;s!=’\0’;i++)
        if(【  】)  {d[j]=s;j++;}
      d[j]=’\0’;
      puts(d);
   }

选项

答案s[i]>=’0’&& s[i]<=’9’ 或 isdigit(s[i]) 或 s[i]>=48&&s[i]<=57或s[i]<=’9’ && s[i]>=’0’ 或 ’9’ >=s[i] &&’0’<=s[i] 或’0’<=s[i] && ’9’>=s[i] 或 s[i]<=57&& s[i]>=48 或 57>=s[i]&&48<=s[i] 或 48<=s[i]&&57>=s[i]

解析 本题中,char s[80],d[80];定义了两个字符型数组,可以放入80个字符。 gets函数是C语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的ASCII码值是否在48 (’0’的ASCII代码)与57(’9’的ASCII代码)之间,或者直接与’0’,’9’进行比较,如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即’\0’的出现)。将"\0"字符作为字符串d结束标志,最后调用puts函数输出d。所以在空格处应填入比较语句s>=’0’&& s<=’9’ 或 isdigit(s) 或 s>=48&&  s<=57 或 s<=’9’  && s>=’0’或9’>>=s && ’0’ <=s 或 ’0’ <=s && ’9’>=s 或 s<=57&& s>=48 或 57>=s&&48<=s 或 48<=s&&57>=s
转载请注明原文地址:https://kaotiyun.com/show/MmXp777K
0

最新回复(0)