我似乎在任何地方都找不到这个,但是当str1不包含str2时,strcspn()是否返回-1?例如,假设我有:
strcspn(argv[1], " ");
如果argv[1]不包含空格,函数是否会返回-1或其他值?
该函数继续检查str1中存在的每个字符的字符匹配,直到找到字符串末尾或匹配项。如果没有匹配项,则返回字符串末尾(空字符的位置)。
请参阅cplusplus.com上的strcspn参考
strcspn(str1, str2)
退货
str1的起始部分的长度,不包含构成str2一部分的任何字符。如果在str1中找不到str2中的任何字符,则这是str1的长度。
所以您的调用是strcspn(argv[1],“”)应返回argv[1]的长度。
描述 (Description) C库函数char *strpbrk(const char *str1, const char *str2)查找字符串str1中与str2指定的任何字符匹配的第一个字符。 这不包括终止空字符。 声明 (Declaration) 以下是strpbrk()函数的声明。 char *strpbrk(const char *str1, const char *str2)
描述 (Description) C库函数int strcoll(const char *str1, const char *str2)将字符串str1与str2进行比较。 结果取决于位置的LC_COLLATE设置。 声明 (Declaration) 以下是strcoll()函数的声明。 int strcoll(const char *str1, const char *str2) 参数 (Pa
描述 (Description) C库函数int strcmp(const char *str1, const char *str2)将str1的字符串与str2 str1的字符串进行比较。 声明 (Declaration) 以下是strcmp()函数的声明。 int strcmp(const char *str1, const char *str2) 参数 (Parameters) str1
描述 (Description) C库函数int strncmp(const char *str1, const char *str2, size_t n)最多比较str1和str2的前n个字节。 声明 (Declaration) 以下是strncmp()函数的声明。 int strncmp(const char *str1, const char *str2, size_t n) 参数 (Pa
描述 (Description) C库函数int memcmp(const void *str1, const void *str2, size_t n))比较存储区str1和存储区str2的前n个字节。 声明 (Declaration) 以下是memcmp()函数的声明。 int memcmp(const void *str1, const void *str2, size_t n) 参数 (
问题内容: 我有2张桌子- : 第二张桌子- : 我只需要选择未取消的预订(在此示例中仅为ID 3)。我可以轻松地选择带有简单条件的已取消,但由于未在此处取消工作,因此我在努力避免未取消。 问题答案: 要么: 第一个版本更直观,但是我认为第二个版本通常可以获得更好的性能(假设您在联接中使用的列上有索引)。 第二个版本有效,因为返回第一个表中所有行的一行。当条件成功,这些行会包括从第二表中的列,就像