按题目要求编写完整功能代码,参考答案点击按钮展开
编写函数 fun,删除字符串 s 中所有数字字符('0'-'9'),结果仍存于 s。例如输入 "a1b2c3",输出 "abc"。
#include <stdio.h>
/* 函数功能:删除字符串 s 中的所有数字字符,结果仍存于 s。
请在下方编写 fun 函数体。 */
void fun(char s[])
{
/* 请在这里编写代码 */
}
int main()
{
char s[100];
printf("请输入字符串: ");
gets(s);
fun(s);
printf("删除数字后: %s\n", s);
return 0;
}
void fun(char s[])
{
int i, j = 0;
for(i=0; s[i]!='\0'; i++)
{
if(!(s[i]>='0' && s[i]<='9'))
{
s[j] = s[i];
j++;
}
}
s[j] = '\0';
}
考点:字符串原地删除。经典双指针法:i 遍历原串,j 指向新串当前位置。非数字字符 s[j]=s[i] 并 j++,数字字符跳过。最后必须 s[j]='\0' 收尾,否则残留旧字符。注意条件用 !(s[i]>='0' && s[i]<='9') 而不是 s[i]<'0' || s[i]>'9',两者等价但前者更清晰。