编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and borland c++, 从键盘上输入字符:n ,则输出后变为:turbo c ad borlad c++,如果输入的字符在字符串中不存在,由字符串照原样输出。 注意:源程序存在文件prog.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
时间: 2024-03-21 11:42:45 浏览: 115
下面是对应的函数fun的代码实现:
```
void fun(char *s, char c)
{
int i, j;
for (i = j = 0; s[i] != '\0'; i++)
{
if (s[i] != c && s[i] != c - 32 && s[i] != c + 32)
{
s[j++] = s[i];
}
}
s[j] = '\0';
}
```
函数中使用了一个for循环,遍历字符串中的每个字符,如果该字符不是指定的字符或者该字符的大小写形式,则把该字符放入新字符串中,否则跳过该字符。最终返回删除指定字符后的字符串。注意,在判断字符是否为指定字符时,需要同时考虑该字符的大小写形式。
相关问题
用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!"。
阅读全文