我有这个问题解析一个字符串,也许你可以帮助。解析字符串打印垃圾
我不是来自C领域,所以请尽量忍耐我所做的愚蠢事情。
我有这样的:
#include <stdio.h>
#include <string.h>
char DataIn[65] = "WV,000B,404C494748543B.";
int main()
{
char *p = DataIn;
puts(DataIn);
for (int count = 0;count<2 ; ++count) {
p = strstr(p, ",");
if (!p)
break;
p++;
}
char *endPointer = strchr(p, '.');
*endPointer = '\0';
puts(p);
}
我从这个例子要的输出是:404C494748543B
(其可以有不同的长度)。
当我打印p
,通常其确定,但有时,只有在一段时间一次,我得到这个:
404C494748543B
X
@LIGHT;
��
@LIGHT;
��03
其中包括一些以前的数据+垃圾。
我提取数据的方式有问题吗?
哪个输入产生垃圾? –
为什么不发布[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)? – MikeCAT
'p = strstr(p,“,”);' - >'p = strstr(prev,“,”);'... print prev。 – BLUEPIXY