用C语言解决以下问下面程序的功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。修改以下程序,要求将/*began*/与/*end*/之间的代码用一个函数来实现。#include<stdio.h> void main() { char str[50],c;int i,j; gets(str); c=getchar(); /*began*/ for(i=0,j=0;str[i]!='\0';i++) if(str[i]!=c) { str[j]=str[i];j++; } str[j]='\0'; /*end*/ printf("nThe result:"); puts(str); }
时间: 2023-06-18 12:03:22 浏览: 130
C语言程序设计-从字符串中删除指定的字符;同一字母的大、小写 按不同字符处理;
5星 · 资源好评率100%
以下是修改后的程序:
```c
#include <stdio.h>
void deleteChar(char str[], char c);
int main() {
char str[50], c;
printf("Input a string: ");
gets(str);
printf("Input a character to delete: ");
scanf("%c", &c);
deleteChar(str, c);
printf("The result: %s\n", str);
return 0;
}
void deleteChar(char str[], char c) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++) {
if (str[i] != c && str[i] != c - 'a' + 'A' && str[i] != c - 'A' + 'a') {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
```
其中,`deleteChar` 函数用来删除指定的字符。在该函数中,使用两个指针 `i` 和 `j` 遍历原字符串,如果当前字符不是指定的字符(包括大小写),则将该字符复制到新字符串中,并更新指针 `j`。最后,将新字符串的结尾标记为 `\0`。
在 `main` 函数中,首先输入字符串和要删除的字符,然后调用 `deleteChar` 函数来处理字符串,最后输出结果。注意,该程序中使用了 `scanf` 函数来输入字符,因为 `getchar` 函数可能会读取上一次输入的回车符。
阅读全文