You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++字符串操作:实现特定字符查找及指定位置字符查询程序

嘿,这两个C++字符串相关的小任务不难,我给你拆解一下,附上代码示例和说明:

任务1:实现字符串中特定字符的查找功能

首先,C++的std::string类本身就提供了非常方便的查找方法find(),直接用它就能快速完成需求。如果你想手动实现查找逻辑,也可以自己写遍历判断的代码,我两种都给你列出来:

方法1:使用标准库的find()函数

这个方法最简单,find()会返回目标字符第一次出现的0-based索引,如果没找到目标字符,会返回std::string::npos(一个特殊值,表示不存在)。

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, World!";
    char target = 'o';

    size_t pos = str.find(target);
    if (pos != std::string::npos) {
        std::cout << "字符 '" << target << "' 第一次出现的位置是:" << pos << std::endl;
    } else {
        std::cout << "字符串中没有找到字符 '" << target << "'" << std::endl;
    }
    return 0;
}

方法2:手动实现查找逻辑

如果想自己写遍历逻辑,核心就是逐个检查字符串的每个字符,匹配到就返回索引,遍历完没找到就返回-1(或者自定义的标记):

#include <iostream>
#include <string>

int findChar(const std::string& str, char target) {
    for (int i = 0; i < str.size(); ++i) {
        if (str[i] == target) {
            return i;
        }
    }
    return -1; // 返回-1表示未找到
}

int main() {
    std::string str = "Hello, World!";
    char target = 'W';

    int pos = findChar(str, target);
    if (pos != -1) {
        std::cout << "字符 '" << target << "' 第一次出现的位置是:" << pos << std::endl;
    } else {
        std::cout << "字符串中没有找到字符 '" << target << "'" << std::endl;
    }
    return 0;
}
任务2:输入单词并按指定位置输出字符

注意示例里的逻辑:输入Peanuts,输入4输出N——这里用户输入的是1-based的位置(也就是从1开始计数),所以我们需要把用户输入的位置减1,转成C++字符串默认的0-based索引来取值。同时还要处理输入不合法的情况(比如位置小于1或者大于字符串长度)。

代码示例如下:

#include <iostream>
#include <string>

int main() {
    std::string word;
    int position;

    // 读取用户输入的单词
    std::cout << "请输入一个单词:";
    std::cin >> word;

    // 读取用户想要查看的字符位置
    std::cout << "请输入想要显示的字符位置:";
    std::cin >> position;

    // 检查位置是否合法:用户输入的是1-based,转成0-based要减1,且不能超出字符串范围
    if (position >= 1 && position <= word.size()) {
        // 转成0-based索引
        char targetChar = word[position - 1];
        std::cout << "对应位置的字符是:" << targetChar << std::endl;
    } else {
        std::cout << "输入的位置不合法!该单词长度为" << word.size() << ",请输入1到" << word.size() << "之间的数字。" << std::endl;
    }

    return 0;
}

测试一下示例场景:输入Peanuts(假设拼写是P-e-a-N-u-t-s,第4位是N),输入4,程序会取索引3的字符,输出N,完全符合要求。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:11:20