//去掉一个字符串中的数字
void deleteDigital(char *str){
int length = (int)strlen(str);
int i = 0;
while(str[i] != '\0'){
if(str[i] >= '0' && str[i] <= '9'){
for(int j = i; j <</font> length; j++){
str[j] = str[j + 1];
}
}
else{
i++;
}
}
}
// 测试 结果:ac
char str[] ="a23c";
deleteDigital(str);
printf("%s\n",str);
为什么没有在返回的字符串后面添加'\0'终止符
因为在移动字符覆盖前面的字符的时候小于的长度是length(标红的地方),所以每一回在移动字符的时候都会把字符串尾部的'\0'前移.