C函数,用于从字符串中删除空格和数字

时间:2019-10-20 13:49:19

标签: c string function

我正在尝试创建一个函数,该函数将从给定字符串中“删除”空格和数字。

该函数假定获取一个字符串,创建一个新字符串,然后复制第一个字符串的内容,但没有任何空格和数字。

例如,当函数获取字符串abcd2 34fty 78 jurt时,它将返回新的字符串abcdftyjurt

我有一个问题-如果我在clearDigitsAndSpaces函数中打印新字符串,则按预期打印。当我尝试使用Ex2函数进行打印时,出现乱码。

这是我的代码:

char *clearDigitsAndSpaces(char *str) {

    trimmedString[100];
    int indexer = 0;

    for (int i = 0; str[i] != '\0'; i++) {
        if (str[i] != ' ' && (str[i] > 57 || str[i] < 48)) {
            trimmedString[indexer] = str[i];
            indexer++;
        }
    }
    trimmedString[indexer] = '\0';

    puts(trimmedString); // Prints well

    return trimmedString;
}

void Ex2() {

    char str[100], *trimmed;

    clear_input_buffer();
    printf("Please enter a string to trim\n");
    gets(str);
    trimmed = clearDigitsAndSpaces(str);

    puts(trimmed); // prints gibberish
}

0 个答案:

没有答案