如何在c ++中的字符串中查找关键字

问题描述 投票:0回答:1

使用特定关键字时,只需打印出包含该关键字的所有单词即可。您不应该使用数组来解决问题。

我使用了find()函数来获取从关键字的起始索引开始打印直到出现','的代码,但是存在错误。

image]

image

这里是代码:

#include <iostream>
#include <string>
#include <limits.h>
using namespace std;

int main() {
    string data = "사랑,프로그래머,의자,사랑의바보,영통역,천년의사랑,냉장고,객체지향";
    string keyword;
    cout << "키워드 : ";
    cin >> keyword;
    int i = 0;
    while (1) {
        i = data.find(keyword, i);
        if (i == INT_MAX) return 0;
        while (data[i] != ',') {
            cout << data[i] << " ";
            i++;
        }
    }
}

即使编译成功,如果关键字在单词之后,也无法打印。

总而言之,我的问题是:

  1. 上面的代码中的问题,假设关键字在单词的前面。

  2. 即使在关键字后面也要打印单词的想法。

c++ string keyword
1个回答
0
投票

std::string::find如果找不到任何内容,则返回std::string::npos

© www.soinside.com 2019 - 2024. All rights reserved.