c - 如何检查一个字符串是否以C中的另一个字符串开头?

标签 c string comparison startswith

标准C库中有没有类似startsWith(str_a, str_b)的东西?

它应该采用指向两个以空字节结尾的字符串的指针,并告诉我第一个是否也完全出现在第二个字符串的开头。

例子:

"abc", "abcdef" -> true
"abcdef", "abc" -> false
"abd", "abdcef" -> true
"abc", "abc"    -> true

最佳答案

这个没有标准函数,但是你可以定义

bool prefix(const char *pre, const char *str)
{
    return strncmp(pre, str, strlen(pre)) == 0;
}

我们不必担心 strpre 短,因为根据 C 标准 (7.21.4.4/2):

The strncmp function compares not more than n characters (characters that follow a null character are not compared) from the array pointed to by s1 to the array pointed to by s2."

关于c - 如何检查一个字符串是否以C中的另一个字符串开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770985/

相关文章:

c++ - 如何比较 int 和 char?

c++ - 比较非静态函数中的静态和非静态整数

c - 输入值以在 c 中堆叠 2 维

c++ - 从参数创建变量名

c++ - 禁用默认库和 CRT 时链接器错误

ios - NSLocalisedString 在显示键和翻译文本之间切换

Java String创建和String常量池

计算句子字符

android - 我如何使用 OnItemClickListener 根据单击的项目启动新 Intent ?

php - 如果通过比较字符串发现中间的子字符串被删除,如何突出显示下一个和上一个子字符串?