strpbrk表现不符合预期

用户名

首先,我想说的是,我对C还是很陌生。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进行调试。

问题在于,如果字符串为“¼”,则输出为“ Found:¼”;如果字符串为“¾”,则输出为“ Found:¾”。但是对于“¾”,我希望输出为NULL,因为搜索的模式不在字符串中。为什么不是这样?我该如何更改?

是否可能是因为1/4不是“正常”字符?

谢谢您的帮助!

姓名

strpbrk() 不支持多字节编码。

源代码中¼¾很可能被编码为UTF-8,但在运行时解释为ASCII。

这两个字符的UTF-8编码为:

0xC2 0xBC
0xC2 0xBE

由于它们共享一个通用的ASCII“字符” 0xC2strpbrk()因此返回的不是NULL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React useEffect表现不符合预期

来自分类Dev

useState表现不符合预期

来自分类Dev

Cron工作表现不符合预期

来自分类Dev

C ++ 11 std :: condition_variable-notify_one()表现不符合预期吗?

来自分类Dev

带有复选框的Android listview表现不符合预期

来自分类Dev

Coffeescript类的行为不符合预期

来自分类Dev

约束不符合我的预期

来自分类Dev

文件内容不符合预期

来自分类Dev

SSLContext模拟行为不符合预期

来自分类Dev

AtomicInteger增量不符合预期

来自分类Dev

类型n的行为不符合预期

来自分类Dev

面料环境不符合预期

来自分类Dev

Javascript日期比较不符合预期

来自分类Dev

CancellationTokenSource的行为不符合预期

来自分类Dev

引导表不符合预期

来自分类Dev

Opencl减少不符合预期

来自分类Dev

RecyclerView onBindViewHolder位置不符合预期

来自分类Dev

jQuery parseHTML结果不符合预期

来自分类Dev

如果条件不符合预期

来自分类Dev

消毒输入但输出不符合预期

来自分类Dev

WinWaitActive函数的行为不符合预期

来自分类Dev

变量的行为不符合预期

来自分类Dev

isinstance()的行为不符合我的预期

来自分类Dev

类别订购不符合预期

来自分类Dev

cublas矩阵乘法不符合预期

来自分类Dev

jQuery remove()行为不符合预期

来自分类Dev

SqlDataReader结果不符合预期

来自分类Dev

页脚宽度不符合预期

来自分类Dev

Excel OR函数的行为不符合预期