使用特定关键字时,只需打印出包含该关键字的所有单词即可。您不应该使用数组来解决问题。
我使用了find()
函数来获取从关键字的起始索引开始打印直到出现','
的代码,但是存在错误。
这里是代码:
#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++;
}
}
}
即使编译成功,如果关键字在单词之后,也无法打印。
总而言之,我的问题是:
上面的代码中的问题,假设关键字在单词的前面。
即使在关键字后面也要打印单词的想法。
std::string::find
如果找不到任何内容,则返回std::string::npos
。