本文介绍了将字符串分割符由strtok的怪异的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想分裂字符串,但不幸的是 strtok的
的行为方式古怪
我有以下字符串获取|用户=密码| 23 |资讯|打招呼
我曾尝试使用strtok的广泛使用的方法,但不幸的是它把 =
作为分隔符,我无法解析我的字符串。
因此, GET
正确地分析比分析只用户
,而不是用户=密码
。
请帮助查找问题或建议其他任何方式来分割字符串。
我编程的Arduino的。
感谢
code
为const char分隔符=|;
字符*记号。
令牌= strtok的(requestString,&安培;分隔符);
//处理解析
令牌= strtok的(NULL,&安培;分隔符);
解决方案
从的,
The requirement that your approach doesn't fit is null terminated. You take the address of a single char
, but clearly you cannot access anything past this one symbol. strtok
, however, searches for \0
character which terminates the string. Thus you're entering undefined behaviour land.
Instead, use
const char* delimiter = "|";
这篇关于将字符串分割符由strtok的怪异的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!