小编jkm*_*jkm的帖子

如何从C字符串中删除"垃圾输入"?

我试图写一个函数,将一个数组中删除所有字符,除了'+','-','*','/',和数字.这是我提出的代码:

void eliminateJunk(char string[MAX]){
    int i,j;
    char stringOut[MAX];
    int length = strlen(string) - 1;

    for(i=0; i <= length; i++){
        if(string[i] != '+'
        && string[i] != '-'
        && string[i] != '*'
        && string[i] != '/'
        && !(isdigit(string[i]))){
            for(j=i; j < length; j++){
                string[j] = string[j+1];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,该函数并不总是从c字符串中删除所有垃圾字符 - 它会获得大部分垃圾字符,但偶尔会留下一些.

输入示例:

123 123
Run Code Online (Sandbox Code Playgroud)

数组的示例输出,在修改后:

123123
Run Code Online (Sandbox Code Playgroud)

但是,在某些输入中,它会留下空间......

输入示例:

123   123
Run Code Online (Sandbox Code Playgroud)

示例输出:

123 123
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?我觉得解决方案就在我的鼻子底下,但我似乎无法找到它.

c c-strings character-arrays

6
推荐指数
1
解决办法
952
查看次数

标签 统计

c ×1

c-strings ×1

character-arrays ×1