0

Is there any C function to check if string s2 exists in s1?

s1: "CN1 CN2 CN3"
s2: "CN2"  or  "CG2"

s1 is fixed, and I want to check whether variants of s2 exists in s1 or not.

I am using C not C++.

4

3 回答 3

6

您可以使用strstr

#include <string.h>

if (strstr(s1, s2) != NULL)
{
    // s2 exists in s1
}
于 2013-05-15T15:57:12.050 回答
5

您可以使用strstr. 请参阅strstr 文档

function strstr

char * strstr ( const char * str1, const char * str2 );

在 str 指向的字节串中查找字节串 substr 的第一次出现。

示例用法如下所示:

 const char *s1 = "CN1 CN2 CN3";
 if (strstr(s1, "CN2") == NULL) //^^!=NULL means exist
 {
     //does not exist
 }
于 2013-05-15T15:57:04.703 回答
1

正如其他人所提到的,您应该使用 strstr()。由于您提到您使用的是 C 而不是 C++,因此添加了 strstr() 的 GNU C 文档的链接,但是,此函数的 C++ 文档也适用于 C。

GNU C 字符串搜索函数

于 2013-05-15T16:03:08.173 回答