C语言:找出s1中是否存在字符串s2

时间:2013-05-15 15:55:24

标签: c char

是否有任何C函数来检查s1中是否存在字符串s2?

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

s1是固定的,我想检查s1中是否存在s2的变体。

我使用的是C而不是C ++。

3 个答案:

答案 0 :(得分:6)

您可以使用strstr

#include <string.h>

if (strstr(s1, s2) != NULL)
{
    // s2 exists in s1
}

答案 1 :(得分:5)

您可以使用strstr。见strstr documentation

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
 }

答案 2 :(得分:1)

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

GNU C String Search Functions