问题
填空题
以下函数的功能是删除字符串s中的所有数字字符。请填空。
viod dele(char *s)
int n=0,i;
for(i=0;s [i];i++)
if(______)
s[n++];s[i];
s[n]= ______;
答案
参考答案: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
’\0’或0或NULL
解析: 本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串, 所以应填入 s[i]<’0’‖s[i]>’9’。最后应在结果字符串的末尾填上字符串结束标志“\0”。