【发布时间】:2011-08-09 23:06:11
【问题描述】:
我正在标记化,并在带有分隔符“=”的文本文件(已读入数组“存储”)上使用 strtok
所以文件中有一条语句:TCP.port = 180
我做到了:
str = strtok(store, "=");
str= strtok(NULL, "=");
现在如果我做*str,它会给我'82'(可能是一些垃圾值)
但是atoi(str); 给了我 180(正确的值)
我希望有人能阐明这一点,不应该取消引用 str 给我 180 吗?
【问题讨论】:
-
你不应该使用 strtok。使用 strtok_r 确保线程安全。
-
你能把整段代码粘贴到发生这种情况的地方吗?
-
82 是字符
'R'的 ASCII 表示。你确定那是你得到的吗?如果atoi(str)给你 180,*str应该给你 49,'1'的 ASCII 表示。 -
Keith 感谢您将这一点曝光..我确实得到了 49