在C语言中,字符串是以字符数组的形式存在的。在实际开发中,经常需要在字符串中查找一个子串是否存在。本文将介绍用C语言实现字符串子串查找的方法。
1. strstr()函数
C语言中提供了一个字符串库函数strstr(),可以用来查找一个字符串中是否包含另一个字符串。该函数的原型为
stst char str2);
其中,str1表示要查找的字符串,str2表示要查找的子串。该函数会返回子串在字符串中次出现的位置,如果没有找到则返回NULL。
clude
tain()
char str1[] = "hello world";
char str2[] = "world";
char p;
p = strstr(str1, str2);
if (p != NULL)
{tf", p - str1);
}
else
{tf");
}
找到了,位置是6
2. 自己实现查找函数
如果不想使用系统提供的函数,也可以自己实现查找函数。具体实现方法如下
(1)遍历字符串,找到个与子串个字符相同的字符;
(2)从该位置开始,比较字符串中剩下的字符与子串中的字符是否相同,如果全部相同,则说明找到了子串。
clude
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语言实现字符串子串查找的方法,一种是使用系统提供的函数strstr(),另一种是自己实现查找函数。在实际开发中,可以根据需要选择合适的方法。