输入一个字符串,输出该字符串中出现次数为奇数的字符及其出现次数。c语言
时间: 2023-10-30 21:07:52 浏览: 194
以下是一个简单的C语言程序,可以实现该功能:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[128] = {0}; // 用一个数组记录每个字符出现的次数
printf("请输入一个字符串:");
gets(str); // 输入字符串
int len = strlen(str);
for (int i = 0; i < len; i++) {
count[str[i]]++; // 统计每个字符出现的次数
}
printf("出现次数为奇数的字符及其出现次数:\n");
for (int i = 0; i < 128; i++) {
if (count[i] % 2 == 1) {
printf("%c:%d\n", i, count[i]); // 输出出现次数为奇数的字符及其出现次数
}
}
return 0;
}
```
需要注意的是,该程序假设输入的字符串只包含ASCII码中的可打印字符,如果输入的字符串中包含了其它字符,程序可能会出现错误。
相关问题
用c语言编写一个程序,输入一个字符串,输出该字符串中出现次数为奇数的字符及其出现次数
以下是用C语言编写的程序,实现输入一个字符串,输出该字符串中出现次数为奇数的字符及其出现次数:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int count[256] = {0};
int i, len;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++)
{
count[(int)str[i]]++;
}
printf("出现次数为奇数的字符及其出现次数为:\n");
for (i = 0; i < 256; i++)
{
if (count[i] % 2 == 1)
{
printf("%c:%d\n", i, count[i]);
}
}
return 0;
}
```
程序的实现思路如下:
1. 首先定义一个字符数组和一个计数数组。字符数组用于存储输入的字符串,计数数组用于统计每个字符出现的次数。
2. 然后使用 `scanf()` 函数获取用户输入的字符串,并使用 `strlen()` 函数获取字符串的长度。
3. 接下来使用一个循环遍历字符串中的每个字符,将每个字符的 ASCII 码作为计数数组的下标,对应元素的值加 1。
4. 最后再使用一个循环遍历计数数组,找到出现次数为奇数的字符,并输出该字符和其出现次数。
需要注意的是,此程序默认输入的字符串中只包含 ASCII 码表中的字符。如果输入的字符串中包含其他字符,需要根据实际情况做相应的修改。
用C语言做,字符串统计,输入一个字符串,长度小于80,要求统计输出其中的数字字符中奇数的个数。输入格式:输入一个长度小于80的字符串。输出格式:输出数字字符为奇数的字符个数。输入样例:在这里给出一组输入。例如:abc123ABC456
好的,这个问题可以用C语言来解决。可以按照以下步骤来实现:
1. 读入输入的字符串,可以使用标准库函数fgets()。
2. 遍历字符串的每个字符,判断是否为数字字符。
3. 如果是数字字符,则将其转换为整数并判断是否为奇数。
4. 如果是奇数,则统计个数。
5. 输出奇数数字字符的个数。
下面是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[81];
int odd_count = 0;
// 读入输入的字符串
printf("请输入一个字符串:");
fgets(str, 81, stdin);
// 遍历字符串的每个字符
for (int i = 0; str[i] != '\0'; i++) {
// 判断是否为数字字符
if (isdigit(str[i])) {
int digit = str[i] - '0';
// 判断是否为奇数
if (digit % 2 != 0) {
odd_count++;
}
}
}
// 输出奇数数字字符的个数
printf("奇数数字字符的个数为:%d\n", odd_count);
return 0;
}
```
输入样例:
```
请输入一个字符串:abc123ABC456
```
输出样例:
```
奇数数字字符的个数为:2
```
阅读全文