gpt4 book ai didi

c - 使用 MPLAB 编译器解析以逗号分隔的字符串?

转载 作者:行者123 更新时间:2023-11-30 17:52:13 24 4
gpt4 key购买 nike

我正在解析一个用逗号分隔的字符串并打印这些值,但由于某种原因,如果我在 MPLAB C 编译器上运行该代码,则该代码仅打印第一个值。但是,如果我在 Codeblocks 上运行此代码,它会打印出所有值。

MPLAB 输出

2

代码块输出

2

100

200

100

代码:

char somestr[] ="2,0100,0200,0100";
char *pt;
int a;
pt = strtok (somestr,",");
while (pt != NULL)
{

a = atoi(pt);
printf("%d\n", a);
pt = strtok (NULL, ",");
}

我希望输出是这样的

2

0100

0200

0100

那么到底发生了什么?谢谢!

最佳答案

我想知道你是如何得到 01000200 (使用 %d 说明符,你应该得到 100 code> 和 200, and you do ),但是通过运行此代码,所有输出肯定都会被打印出来。代码看起来不错。情况并非如此的可能原因:

  • 您还有一些代码会调用未定义的行为并干扰这段代码;
  • 这不是您正在编译的实际代码;
  • 终端或程序在 MPLAB 编译器编译后打印的任何地方有错误,或者您只是没有注意到它应该滚动;
  • 编译器或标准库错误? (不太可能...)

编辑:因此您希望输出用零填充。为此,请在 printf() 变量时使用 %04d 格式说明符。

关于c - 使用 MPLAB 编译器解析以逗号分隔的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com