删除字符串中的数字 #define N 6
int i;
char ch[N];
printf("请输入字符串:\n");
for(i=0;iscanf("%c",&ch[i]);
}
printf("过滤后的字符为:\n");
for(i=0;iif(ch[i]>='0'&&ch[i]<='9')
{
ch[i]=ch[i+1];
}
printf("%c",ch[i]);
}
return 0;
}
为什么输入7he5,输出是hhe啊?
我想的是当元素是数字时,就让后面的元素覆盖住数字
成功
你这种写法逻辑有误,当输入7he5时,会把h往前移,但是e不会往前移,所以得到的结果为hhe,里面会有两个h。
提供一种思路:遍历数组,保留不为数字的字符
int i=0,j=0;
while(ch[i]!='\0')
{
if(ch[i]<'0'&&ch[i]>'9')
{
ch[j]=ch[i];
j++;
}
i++;
}
#include <stdio.h>
#define N 6
int main() {
char ch[N],s[N],j=0;
printf("请输入字符串\n");
for (int i =0; i<N; i++) {
scanf("%c",&ch[i]);
}
printf("过滤后的字符为:\n");
for (int i = 0; i < N; i++) {
if (ch[i]<'0'||ch[i]>'9') {
printf("%c", ch[i]);
s[j] =ch[i];
j++;
}
}
printf("\n过滤后的字符为:\n");
for (int i = 0; i < j; i++) {
printf("%c", s[i]);
}
return 0;
}