本文介绍了将字符串分割符由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的怪异的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 04:22