首先我想说,我对C很新。 我有一个strpbrk函数的问题。strpbrk不像预期的那样行为
我的函数得到一个字符串。 如果这个字符串包含一个“¼”,它应该做一些事情,如果它包含一个“¾”它应该做其他事情。
static char* format_date_string3(char *string) {
printf("Found: %s\n", strpbrk(string, "¼"));
if (strpbrk(string, "¼") != NULL) {
//do something
} else if (strpbrk(string, "¾") != NULL) {
//do something else
}
}
我添加了printf用于调试目的。
问题是,如果字符串是“3/4”,如果字符串是“3/4”,则输出为“发现:¼”,如果字符串为“¾”,则输出为“发现:¾”。但对于“¾”我期望输出为NULL,因为搜索到的模式不在字符串中。为什么不是这种情况?我该如何改变它?
原因可能是¼不是“正常”字符?
谢谢你的帮助!
这部分似乎是自相矛盾的:““发现:¼”如果字符串是“¼”和“发现:¾”如果字符串是“¾”。但对于“¾”我期望输出为NULL,因为搜索到的模式不在字符串中' – D3Hunter