问题
填空题
以下函数的功能是删除字符串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。