一个字符串中有好多的字符,要求用c语言删除其中的数字。这怎么做?

一个字符串中有好多的字符,要求用c语言删除其中的数字。

有帮助请采纳

img

#include <stdio.h>
#include <string.h>
int main()
{
    char c[250];
    char t[250]={0};
    printf("请输入字符串:");
    gets(c);
    int j,h=0;
    for(j=0;j<strlen(c);j++)
    {
        if(c[j]>'9'||c[j]<'0')
        {
            t[h]=c[j];
            h++;
        }
    }
    
    printf("去除数字后:");
    puts(t); 
    return 0;
}


#include "stdio.h"
#include "string.h"
void del_digit(char *str)
{
    char *ep = str;
    char *sp = str;
    while (*sp)
    {
        if (*sp >= '0' && *sp <= '9')
        {
            sp++;
        }
        else
        {
            *ep++ = *sp++;
        }
    }
    *ep = '\0';
}
void main()
{
    char str[500];
    int i;
    printf("请输入字符串:\n");
    gets(str);
    del_digit(str);
    puts(str);
}

供参考:

#include <stdio.h>
#include <ctype.h>
int main()
{
    char str[128], * p = str;
    int  i=0;
    gets(str);
    while (*p) {
        if (isdigit(*p)) 
            p++;
        else
            str[i++] = *p++;
    }
    str[i] = '\0';
    puts(str);
    return 0;
}
 

// 删除数字
#include <stdio.h>
#define N 100
int main(void)
{
    char s[N];
    int j,k;
    gets(s);// 输入字符串
    for(j = k = 0;s[j]!='\0';j++)// 此循环用于删除字符串中的数字
        if(s[j]<'0'||s[j]>'9')
            s[k++] = s[j];
    s[k] = '\0';// 处理过的字符串加上结束标志'\0'
    puts(s);// 输出处理过的字符串
    return 0;
}

img