色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

用C語言實(shí)現(xiàn)字符串子串查找的方法詳解

在C語言中,字符串是以字符數(shù)組的形式存在的。在實(shí)際開發(fā)中,經(jīng)常需要在字符串中查找一個(gè)子串是否存在。本文將介紹用C語言實(shí)現(xiàn)字符串子串查找的方法。

1. strstr()函數(shù)

C語言中提供了一個(gè)字符串庫函數(shù)strstr(),可以用來查找一個(gè)字符串中是否包含另一個(gè)字符串。該函數(shù)的原型為

stst char str2);

其中,str1表示要查找的字符串,str2表示要查找的子串。該函數(shù)會(huì)返回子串在字符串中次出現(xiàn)的位置,如果沒有找到則返回NULL。

cludecludeg.h>

tain()

char str1[] = "hello world";

char str2[] = "world";

char p;

p = strstr(str1, str2);

if (p != NULL)

{tf", p - str1);

}

else

{tf");

}

找到了,位置是6

2. 自己實(shí)現(xiàn)查找函數(shù)

如果不想使用系統(tǒng)提供的函數(shù),也可以自己實(shí)現(xiàn)查找函數(shù)。具體實(shí)現(xiàn)方法如下

(1)遍歷字符串,找到個(gè)與子串個(gè)字符相同的字符;

(2)從該位置開始,比較字符串中剩下的字符與子串中的字符是否相同,如果全部相同,則說明找到了子串。

cludecludeg.h>

td_substr(char str1, char str2)

{t i, j, k;

for (i = 0; str1[i] != '\0'; i++)

{

for (j = i, k = 0; str2[k] != '\0' && str1[j] == str2[k]; j++, k++);

if (str2[k] == '\0')

{ i;

}

}

tain()

char str1[] = "hello world";

char str2[] = "world";t pos;

d_substr(str1, str2);

if (pos != -1)

{tf", pos);

}

else

{tf");

}

找到了,位置是6

本文介紹了兩種用C語言實(shí)現(xiàn)字符串子串查找的方法,一種是使用系統(tǒng)提供的函數(shù)strstr(),另一種是自己實(shí)現(xiàn)查找函數(shù)。在實(shí)際開發(fā)中,可以根據(jù)需要選擇合適的方法。