删除在字符串中所有出现次数最少的字符 c语言
时间: 2023-12-08 14:03:39 浏览: 38
以下是一个例子,它实现了在字符串中删除所有出现次数最少的字符:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], result[100];
int freq[256] = {0}, min_freq = 100;
printf("Enter a string: ");
fgets(str, 100, stdin);
// 计算字符出现次数
for (int i = 0; i < strlen(str); i++) {
freq[str[i]]++;
}
// 找到最小出现次数
for (int i = 0; i < 256; i++) {
if (freq[i] < min_freq && freq[i] > 0) {
min_freq = freq[i];
}
}
// 删除所有出现次数最少的字符
int j = 0;
for (int i = 0; i < strlen(str); i++) {
if (freq[str[i]] != min_freq) {
result[j++] = str[i];
}
}
result[j] = '\0';
printf("Result: %s\n", result);
return 0;
}
```
该程序使用一个长度为 256 的数组 `freq` 来计算每个字符在字符串中出现的次数。然后,程序找到最小出现次数,并将所有出现次数不等于最小值的字符复制到一个新的字符串 `result` 中。最后,程序输出 `result`。
例如,如果输入字符串为 "hello world",则输出为 "eoo". 由于字符 'e' 和 'o' 都出现了两次,因此它们不是出现次数最少的字符。 字符 'h', 'l', 'w', 'r', 'd' 都只出现了一次,所以它们是出现次数最少的字符,被删除了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)