我正在尝试创建一个函数,该函数将从给定字符串中“删除”空格和数字。
该函数假定获取一个字符串,创建一个新字符串,然后复制第一个字符串的内容,但没有任何空格和数字。
例如,当函数获取字符串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
}