如何在不使用字符串函数的情况下在char数组中查找字符串?(c ++)

时间:2017-12-04 12:36:08

标签: c++

我有以下代码:

char x[30]="computer";
char y[30]="put";

我想查找“计算机”中是否存在“put”并打印其位置。不允许使用字符串函数。

4 个答案:

答案 0 :(得分:3)

库函数(c ++样式)

std::string a = "computer", b = "put";
bool found = a.find(b) != std::string::npos;

没有库功能(c样式)

我认为你不希望得到可怕的复杂性,所以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,则第二个字符串不在第一个字符串中。

http://www.cplusplus.com/reference/string/string/find/

答案 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";
}