最近在写一个程序,需要用到字符串匹配,并且返回匹配的字符串,C语言库函数中的strtstr无法满足我的要求,只能自己写了。
代码如下
//string match function
char *matchString(const char* buf, const char* sub) {
char* tbuf = buf;
char* tsub = sub;
int i = 0;//tbuf 主串的元素下标位置,从下标0开始找,可以通过变量进行设置,从其他下标开始找!
int j = 0;//tsub 子串的元素下标位置
while (i <= strlen(tbuf ) - 1 && j <= strlen(tsub )-1)
{
//字符相等,则继续匹配下一个字符
if (tbuf [i] == tsub [j])
{
i++;
j++;
}
//在匹配过程中发现有一个字符和子串中的不等,马上回退到 下一个要匹配的位置
else
{
i = i - j + 1;
j = 0;
}
}
//循环完了后j的值等于strlen(tsub) 子串中的字符已经在主串中都连续匹配到了
if (j == strlen(tsub))
{
return tsub;
}
return NULL;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148922.html