用c语言编写一个程序,输入一个字符串str(长度不超过30)和一个字符ch,通过指针查找、统计字符串str中字符ch,通过指针查找、统计字符串str中字符ch出现的位置(区分大小写)。输入形式:输入一个字符串str,以及一个字符ch。输出形式:若ch在str中存在,输出位置,位置之间以空格分隔;若ch在str中不存在,输出NULL;输出后面无换行符
时间: 2023-11-22 08:56:24 浏览: 89
C语言程序设计-分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80);.c
5星 · 资源好评率100%
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
void find_char(char *str, char ch, int *count, int *pos) {
int len = strlen(str);
*count = 0; // 计数器清零
for (int i = 0; i < len; i++) {
if (str[i] == ch) {
(*count)++; // 统计字符出现次数
pos[*count - 1] = i; // 记录字符出现位置
}
}
}
int main() {
char str[31], ch;
int count = 0, pos[30];
scanf("%s %c", str, &ch); // 输入字符串和字符
find_char(str, ch, &count, pos); // 查找字符信息
if (count == 0) {
printf("NULL"); // 如果没有找到,输出NULL
} else {
for (int i = 0; i < count; i++) {
printf("%d", pos[i]); // 输出位置
if (i != count - 1) {
printf(" "); // 不是最后一个位置,则输出空格
}
}
}
return 0;
}
```
程序的逻辑比较简单,通过调用 `find_char` 函数查找字符在字符串中的位置。函数中使用指针传递参数,可以更高效地操作变量。最后根据找到的位置输出结果。
需要注意的是,如果字符在字符串中不存在,输出 `NULL`,而不是空字符串或者其他提示信息。
阅读全文