使用strncmp c风格的字符串函数
我有一个字符串,我试图找出它是否是另一个单词中的子字符串 例如(伪代码)使用strncmp c风格的字符串函数,c,c-strings,strncmp,C,C Strings,Strncmp,我有一个字符串,我试图找出它是否是另一个单词中的子字符串 例如(伪代码) 这是否可能使用strncmp?不直接使用strncmp,但您可以使用strstrstr: char s1[] = "happy"; char *pos = strstr(s1, "pp"); if(pos != NULL) memcpy(pos, "xx", 2); 这仅在搜索字符串和替换字符串长度相同时有效。如果没有,则必须使用memmove,并可能分配更大的字符串来存储结果。不能直接使用strncmp,但可
这是否可能使用strncmp?不直接使用
strncmp
,但您可以使用strstrstr
:
char s1[] = "happy";
char *pos = strstr(s1, "pp");
if(pos != NULL)
memcpy(pos, "xx", 2);
这仅在搜索字符串和替换字符串长度相同时有效。如果没有,则必须使用
memmove
,并可能分配更大的字符串来存储结果。不能直接使用strncmp
,但可以使用strstr
:
char s1[] = "happy";
char *pos = strstr(s1, "pp");
if(pos != NULL)
memcpy(pos, "xx", 2);
这仅在搜索字符串和替换字符串长度相同时有效。如果没有,则必须使用
memmove
,并可能分配更大的字符串来存储结果。不使用strncmp。你需要,即
不是用strncmp。你需要,即
谢谢!!!在我上学期学习了这么多之后,我似乎还有很多事情要做。我从未使用过strstr,也没有使用过memcpy。再次感谢。完全可以使用
strncmp
来实现这一点-使用strstrstr更容易,但那是另一回事。值得注意的是:即使这些是字符串,我们也不使用strcpy
,因为这是为了复制整个字符串(包括它们的空终止符)。非常感谢!!!在我上学期学习了这么多之后,我似乎还有很多事情要做。我从未使用过strstr,也没有使用过memcpy。再次感谢。完全可以使用strncmp
来实现这一点-使用strstrstr更容易,但那是另一回事。值得注意的是:即使这些是字符串,我们也不使用strcpy
,因为这是为了复制整个字符串(包括它们的空终止符)。详细说明:您可以在输入字符串上使用循环,并在每个位置使用strncmp
,以查看是否有匹配项。与strstr
解决方案相比,它的代码稍微多一些,但它会起作用。详细说明:您可以在输入字符串上使用循环,并在每个位置使用strncmp
,以查看是否有匹配项。它比strstrstr
解决方案的代码要多一点,但它可以工作。
char happy = "happy";
char *s = strstr(happy, "pp");
if (s) memcpy(s, "xx", 2);