我有以下代码:
char x[30]="computer";
char y[30]="put";
我想查找“计算机”中是否存在“put”并打印其位置。不允许使用字符串函数。
答案 0 :(得分:3)
std::string a = "computer", b = "put";
bool found = a.find(b) != std::string::npos;
我认为你不希望得到可怕的复杂性,所以KMP就是你要找的东西。
答案 1 :(得分:0)
在C ++中,您可以使用字符串和字符串:: find
使用char数组,
if (strstr(x, y) != NULL) {
// contains
}
答案 2 :(得分:0)
在C ++中,您可以在字符串上使用find方法:
std::string str ("computer"); std::string str2 ("put");
std::size_t found = str.find(str2);
如果找到= -1,则第二个字符串不在第一个字符串中。
答案 3 :(得分:0)
由于您使用的是C ++,因此可以使用std :: string:
#include <string>
#include <iostream>
const std::string stringToSearch("computer");
const std::string stringToFind("put");
if (stringToSearch.find(stringToFind) == std::string::npos) {
std::cout << "not found\n";
} else {
std::cout << "found \n";
}