用C语言编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。
时间: 2024-02-10 14:10:33 浏览: 65
下面是一个用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'。
相关问题
c语言函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
好的,这个问题可以用C语言实现。以下是一个实现这个功能的函数fun的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char *s, char *ch, int *count) {
int i, j, max = 0;
int len = strlen(s);
int freq[26] = {0};
// 统计每个字母的出现次数
for (i = 0; i < len; i++) {
if (isalpha(s[i])) {
freq[tolower(s[i]) - 'a']++;
}
}
// 找出出现次数最多的字母
for (i = 0; i < 26; i++) {
if (freq[i] > max) {
max = freq[i];
*ch = 'a' + i;
}
}
// 统计出现次数
*count = max;
}
```
函数接受两个指针参数:一个指向字符串s,另一个指向字符指针ch和整型指针count。函数在执行过程中会统计字符串s中每个字母出现的次数,找出出现次数最多的字母,并将其存储在ch指向的位置,将出现次数存储在count指向的位置。注意,这个函数不区分大小写,因此所有字母都将转换为小写字母进行统计。
C语言编写函数fun将ss所指的字符串中所有下标为奇数位上的字母转换为大写
好的,我可以帮你编写这个函数。以下是函数的代码:
```c
#include <string.h>
#include <ctype.h>
void fun(char *ss) {
int len = strlen(ss);
for (int i = 0; i < len; i += 2) {
if (isalpha(ss[i])) {
ss[i] = toupper(ss[i]);
}
}
}
```
这个函数首先使用 `strlen` 函数获取字符串的长度,然后使用循环遍历字符串中所有下标为奇数位上的字母(包括大写字母和小写字母),使用 `isalpha` 函数判断当前字符是否为字母,如果是字母,则使用 `toupper` 函数将其转换为大写字母。最后,函数返回,原始字符串中所有下标为奇数位上的字母已经被转换为大写字母了。