c语言 给出的程序的功能是删除字符串(字符数组)中所有的小写字母c。请改正程序中的错误,使它能得到正确的结果。测试输入: abcdefg 预期输出: The original string: abcdefg The string after deleted: abdefg
时间: 2024-05-13 11:19:46 浏览: 54
将一字符串中的小写英文字母改成大写。-c语言习题
以下是一个正确的程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
printf("The original string: %s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] == 'c' || str[i] == 'C') {
for (int j = i; j < len; j++) {
str[j] = str[j + 1];
}
len--;
i--;
}
}
printf("The string after deleted: %s", str);
return 0;
}
```
注意以下几点:
1. 使用 `fgets` 函数获取输入的字符串,可以防止输入字符数超过数组大小的情况。
2. 要删除所有小写字母 c,需要在判断时同时判断大写字母 C。
3. 在删除字符时,要将后面的字符都向前移动一个位置,并将字符串长度减一。注意循环变量 `i` 也需要减一,以便处理移动后的新字符。
4. 输出字符串时不需要换行符,可以省略 `%s` 格式字符串后面的 `\n`。
阅读全文