编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and borland c++, 从键盘上输入字符:n ,则输出后变为:turbo c ad borlad c++,如果输入的字符在字符串中不存在,由字符串照原样输出。 注意:源程序存在文件prog.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
时间: 2024-03-21 21:42:15 浏览: 107
下面是函数fun的代码:
```c
void fun(char *str, char c){
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++){
if (str[i] != c && str[i] != (c + 32) && str[i] != (c - 32)){
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
函数说明:
函数名称:fun
函数功能:从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。
函数参数:
- char *str:指向输入字符串的指针;
- char c:指定要删除的字符。
函数返回值:无。
函数实现:
- 使用两个变量 i 和 j 分别表示原字符串和新字符串的下标;
- 遍历原字符串中的每个字符,如果当前字符不是要删除的字符或其大、小写形式,则将其添加到新字符串中;
- 最后,在新字符串的末尾添加一个空字符 '\0',表示字符串的结束。
相关问题
用C语言编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。
下面是一个用C语言实现的函数fun,可以删除字符串中指定的字符,包括同一字母的大、小写:
```c
#include <stdio.h>
#include <string.h>
void fun(char *str, char ch)
{
int i, j;
int len = strlen(str);
for (i = j = 0; i < len; i++) {
if (str[i] != ch && str[i] != ch - 'A' + 'a' && str[i] != ch - 'a' + 'A') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main()
{
char str[100];
char ch;
printf("请输入字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &ch);
fun(str, ch);
printf("删除后的字符串是:%s\n", str);
return 0;
}
```
该函数使用两个指针 i 和 j,分别表示遍历原字符串和处理后的字符串的位置。遍历原字符串时,如果当前字符不是要删除的字符,就将它复制到处理后的字符串中,同时 j 指针加1。最后,将处理后的字符串的结尾字符设为 '\0'。
4. 请编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。
以下是函数fun的实现:
```python
def fun(s, c):
"""
从字符串s中删除字符c
"""
# 对于每个字符,若其不等于c或不等于c的大写或小写形式,则保留该字符
return ''.join([x for x in s if x != c and x != c.upper() and x != c.lower()])
```
该函数接受两个参数,分别为待处理的字符串s和要删除的字符c。函数返回一个新字符串,其中删除了所有与c及其大小写形式相同的字符。
例如,若输入字符串s为"Hello, world!",要删除的字符c为"o",则调用fun(s, c)的返回值为"Hell, wrld!"。
阅读全文