问题 填空题

以下函数的功能是删除字符串s中的所有数字字符。请填空。
void dele(char *s)
int n=0,i;
for(i=0;s[i];i++)
if( 【15】 )
s[n++]=s[i];
s[n]= 【16】

答案

参考答案:[15]s[i]<’0’||s[i]>’9’ 或!(s[i]>=’0’&&s[i]<=’9’)
或!(isdigit(s[i])) 或isdigit(s[i])==0 或s[i]>’9’|| s[i>’0’ 或!(s
[i]<=’9’&&s[i]>=’0’) 或*(s+i)<’0’||*(s+i)>’9’ 或!(*(s+i)
>=’0’&&*(s+i)<=9 或!(isdigit(*(s+i))) 或*(s+i)>=’9’&&*(s
+i)<=’0’ 或!(*(s+i)<=’9’&&*(s+i)>=’0’ 或isdigit(*(s+i))=
=0
[16]’\0’或0或NULL

解析:字符指针变量作为函数的参数以及与字符串有关的算法,从一个字符串中删除某字符的方法是从字符串的第一个字符开始——判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第—个空应判断s[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<’0’||s[i]>’9’。最后应在结果字符串的末尾填上字符串结束标志“\0”。

选择题
单项选择题