我都替你着急,采纳我了还要再问别人,来问我呀,我给你写好了。如下
#include <stdio.h>
int main() {
char str[101], a;
int i, j;
// 输入到 str
for ( i = 0 ; i < 101 ; i++ ) {
scanf("%c", &a);
if (a == '\n') {
// 如果按了回车的话就给字符串加结尾并退出输入
str[i] = '\0';
break;
} else {
// 输入的接在 str 的最后面
str[i] = a;
}
}
// 输入要删除的
scanf("%c",&a);
// 循环遍历 str 如果到了结尾就退出
for ( i=0 ; str[i] != '\0' ; i++ ) {
// 如果 这个位置要被删除
if( str[i] == a ){
// 这个位置后面的每一位都往前移一位 移到结尾为止
for( j = i ; str[j] != '\0' ; j++ ){
str[j] = str[j+1];
}
// i 自减 1 避免下一个也要删,却因为往前移到了 i 的位置 导致 没有被删除
i--;
}
}
printf("%s",str);
return 0;
}
每次删掉一个字符末尾\0也应该向前移动哦