c++编写一个程序,输入一个字符串str(长度不超过30)和一个字符ch,统计字符串str中字符ch出现的位置(区分大小写)。
时间: 2024-05-10 08:19:53 浏览: 133
好的,这是一个编程问题,我可以帮您解答。以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[31]; // 定义字符串数组,长度为31(包括字符串末尾的\0)
char ch; // 定义字符变量
printf("请输入一个字符串(长度不超过30):");
scanf("%s", str); // 输入字符串,注意%s前没有&符号
printf("请输入要统计的字符:");
scanf(" %c", &ch); // 输入字符,注意前面有一个空格
int count = 0; // 统计字符出现的次数
printf("字符 %c 出现的位置是:", ch);
for (int i = 0; i < strlen(str); i++)
{
if (str[i] == ch)
{
printf("%d ", i); // 输出字符出现的位置
count++;
}
}
printf("\n字符 %c 一共出现了 %d 次。\n", ch, count);
return 0;
}
```
您可以复制以上代码,然后在 C 语言编译器中运行,即可查看结果。
相关问题
问题描述 编写一个程序,输入一个字符串str(长度不超过30)和一个字符ch,通过指针查找、统计字符串str中字符ch出现的位置(区分大小写)。 输入形式 输入一个字符串str,以及一个字符ch 输出形式 •若ch在str中存在,输出位置,位置之间以空格分隔 若ch在str中不存在,输出NULL •输出后面无换行符
以下是 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(长度不超过 30)和一个字符 ch,通过指 针查找、统计字符串 str 中字符 ch 出现的位置(区分大小写)。 【输入形式】 输入一个字符串 str,以及一个字符 ch 【输出形式】 若 ch 在 str 中存在,输出位置,位置之间以空格分隔 若 ch 在 str 中不存在,输出 NULL 输出后面无换行符
好的,以下是C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[31], ch;
int pos = 0, count = 0;
cout << "请输入一个字符串 str: ";
cin >> str;
cout << "请输入要查找的字符 ch: ";
cin >> ch;
for (int i = 0; i < strlen(str); i++) {
if (str[i] == ch) {
cout << i << " ";
count++;
}
}
if (count == 0) {
cout << "NULL";
}
return 0;
}
```
运行程序时,会先让用户输入一个字符串 `str` 和一个字符 `ch`,然后程序会遍历字符串 `str`,查找其中是否有字符 `ch`,并记录字符 `ch` 出现的位置。如果找到了字符 `ch`,则将其位置输出并计数器加一;如果没有找到字符 `ch`,则输出 `NULL`。最终程序会返回 0,表示程序正常结束。
阅读全文