问题描述 编写一个程序,输入一个字符串str(长度不超过30)和一个字符ch,通过指针查找、统计字符串str中字符ch出现的位置(区分大小写)。 输入形式 输入一个字符串str,以及一个字符ch 输出形式 •若ch在str中存在,输出位置,位置之间以空格分隔 若ch在str中不存在,输出NULL •输出后面无换行符
时间: 2023-11-22 11:57:05 浏览: 150
以下是 C++ 代码实现,可以实现你的需求:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[31], ch;
cin >> str >> ch;
int len = strlen(str);
bool flag = false;
for (int i = 0; i < len; i++) {
if (str[i] == ch) {
cout << i << " ";
flag = true;
}
}
if (!flag) {
cout << "NULL";
}
return 0;
}
```
程序首先输入一个字符串 `str` 和一个字符 `ch`,然后使用 `strlen` 函数获取字符串的长度。接下来使用一个 for 循环遍历字符串,如果当前字符等于 `ch`,则输出字符在字符串中的位置,并将标志变量 `flag` 设为 `true`。最后判断标志变量是否为 `true`,如果是,则说明字符 `ch` 在字符串 `str` 中出现过,否则输出 `NULL`。
相关问题
编写一个程序,输入一个字符串str和一个字符ch,通过指针查找,统计字符串str中ch出现的位置
下面是一个 C++ 的程序实现:
```c++
#include <iostream>
using namespace std;
void findChar(char* str, char ch) {
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ch) {
count++;
cout << "字符" << ch << "出现在第" << i+1 << "个位置" << endl;
}
}
if (count == 0) {
cout << "字符" << ch << "在字符串中未出现" << endl;
}
}
int main() {
char str[100], ch;
cout << "请输入一个字符串:";
cin.getline(str, 100);
cout << "请输入一个字符:";
cin >> ch;
findChar(str, ch);
return 0;
}
```
程序首先输入一个字符串和一个字符,然后通过指针遍历字符串,统计字符出现的次数并输出其位置。如果字符在字符串中未出现,则输出提示信息。
编写一个程序,输入一个字符串str和一个字符ch,通过指针查找,统计字符串str中字符ch出现的位置
下面是一个示例程序,实现了输入一个字符串和一个字符,然后通过指针查找,统计字符串中字符出现的位置:
```c
#include <stdio.h>
#include <string.h>
void find_char(const char *str, char ch);
int main()
{
char str[100], ch;
printf("请输入字符串:");
gets(str);
printf("请输入要查找的字符:");
scanf("%c", &ch);
find_char(str, ch);
return 0;
}
void find_char(const char *str, char ch)
{
int count = 0;
const char *p = str;
while (*p)
{
if (*p == ch)
{
printf("%d ", p - str);
count++;
}
p++;
}
if (count == 0)
{
printf("未找到该字符");
}
else
{
printf("\n共找到%d个字符", count);
}
}
```
运行程序后,输入一个字符串和一个字符,程序会输出该字符在字符串中出现的位置,如果没有找到该字符,则输出提示信息。
阅读全文