不改变原有数组删除数字字符:
#include <stdio.h>
#define LENGTH 128

void del_digit(const char str[]) {
int i = 0;

while (str[i]) {
if (str[i] < &#39;0&#39; || str[i] > &#39;9&#39;) {
putchar(str[i++]);
}else {
i++;
}

}

}

int main()
{
char str[LENGTH];

puts("请输入字符串:");
scanf("%s", str);

puts("删除数字字符得到:");
del_digit(str);

return 0;
}
不使用指针删除数字字符(改变原有数组)
#include <stdio.h>
#define LENGTH 128

void del_digit(char[], char[]);
void exchange_of_array(char[], char[]);
void put_string(const char[]);

void del_digit(char str1[], char str2[]) {
int i = 0;
int j = 0;

while (str1[i]) {
if (str1[i] < &#39;0&#39; || str1[i] > &#39;9&#39;) {
str2[j] = str1[i];
j++;
i++;
} else {
i++;
}
}

exchange_of_array(str1, str2);
}

void exchange_of_array(char str1[], char str2[]) {
int i = 0;
int j = 0;

while (str1[j]) {
str1[j] = &#39;\0&#39;;
j++;
}

while (str2[i]) {
str1[i] = str2[i];
i++;
}

put_string(str1);
}

void put_string(const char str1[]) {
int i = 0;

while (str1[i]) {
putchar(str1[i++]);
}
}

int main(){
char str1[LENGTH];
char str2[LENGTH] = "";

puts("请输入字符串:");
scanf("%s", str1);

puts("删除数字字符得到:");
del_digit(str1, str2);

return 0;
}
使用指针删除数字字符(改变原有数组)
#include <stdio.h>
#define LENGTH 128

void del_digit(char str[]){
int i;
int j;

for (i = 0; *(str + i); i++){

if ((*(str + i) >= &#39;0&#39;)&&(*(str + i) <= &#39;9&#39;)){

for(j = i; *(str + j); j++){

*(str + j) = *(str + j + 1);

}

i--;
}
}

printf("删除数字字符得到:%s\n", str);
}

int main()
{
char str[LENGTH];


puts("请输入字符串:");
scanf("%s", str);
del_digit(str);
}

运行结果:
C语言 将字符串中数字字符全部删除_i++

注:
中间不能添加空格字符,否则空格后的字符无法显示。