c语言字符串删除指定字母存储在原来字符串中,不用指针
时间: 2023-12-11 22:03:50 浏览: 53
可以使用两个下标变量来遍历字符串,一个下标变量记录原字符串的位置,另一个下标变量记录修改后字符串的位置。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void delete_char(char str[], char c) {
int original_index, modified_index;
for (original_index = 0, modified_index = 0; str[original_index] != '\0'; original_index++) {
if (str[original_index] != c) {
str[modified_index] = str[original_index];
modified_index++;
}
}
str[modified_index] = '\0'; // 添加字符串结尾标志
}
int main() {
char str[100], c;
printf("请输入一个字符串:");
gets(str);
printf("请输入要删除的字符:");
scanf("%c", &c);
delete_char(str, c);
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
上述代码中,使用了两个下标变量 `original_index` 和 `modified_index`,分别表示原字符串和修改后字符串的位置。遍历原字符串,如果当前字符不是要删除的字符,则将其加入修改后字符串中,同时修改下标变量 `modified_index` 的值。最后,在修改后字符串的末尾添加字符串结尾标志 `\0`。
阅读全文