编写程序实现在一个字符串中查找指定的字符,并输出指定的字符在字符串中出现的次数及位置,如果该字符串中不包含指定的字符,请输出提示信息,用C语言
时间: 2023-06-09 16:04:06 浏览: 872
C语言中查找字符在字符串中出现的位置的方法
来编写程序。
好的,让我来为您解答这个问题。以下是使用 C 语言编写一个查找字符串中指定字符的程序,同时它还会输出该字符在字符串中出现的次数及位置:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000], ch;
int count = 0;
printf("请输入一个字符串: ");
fgets(str, 1000, stdin);
printf("请输入要查找的字符: ");
scanf("%c", &ch);
for (int i = 0; i < strlen(str); i++) {
if (str[i] == ch) {
count++;
printf("%c出现在第%d个位置\n", ch, i+1);
}
}
if (count == 0) {
printf("该字符串中不包含指定的字符!\n");
} else {
printf("%c在该字符串中出现了%d次\n", ch, count);
}
return 0;
}
```
以上代码中,我们首先通过 `fgets()` 函数获取用户输入的字符串。接着,使用 `scanf()` 函数获取要查找的字符。之后,使用 for 循环遍历整个字符串,并逐个字符检查是否和指定字符相同。如果找到了指定字符,就将计数器 `count` 加1,并输出该字符在字符串中的位置。最后根据计数器的值决定输出相应的提示信息。
注意,这里使用的是 `fgets()` 函数而不是 `gets()` 函数。因为 `gets()` 函数存在缓冲区溢出的安全隐患,已经被标记为不安全函数。而 `fgets()` 函数可以指定读取的最大字符数,避免了缓冲区溢出的问题。
阅读全文