我正在使用C语言编程一个MCU,我需要解析一个以空字符结尾的字符串,其中包含一个IP地址为4个单字节。我用C++做了一个例子:解析4个单字节的IP地址字符串
#include <iostream>
int main()
{
char *str = "192.168.0.1\0";
while (*str != '\0')
{
if (*str == '.')
{
*str++;
std::cout << std::endl;
}
std::cout << *str;
*str++;
}
std::cout << std::endl;
return 0;
}
该代码在新行中打印192,168,0和1每个字节。现在我需要在单个字符中的每个字节,如字节1,字节2,字节3和字节4,其中字节1包含1和字节4包含192 ...或在一个结构IP_ADDR并返回该结构然后,但我不知道如何做到这一点C. :(
此代码不能打印“字节”与值'192' ...提供更严格的版本:它打印字符... 3 '1'' 9''''的字符... – pmg 2012-02-09 13:24:08
噢......刚刚意识到用户提出的问题。通过查看cout的代码,我认为他只是想打印它们。他实际上想要的字节 – Lefteris 2012-02-09 13:33:19
明确地在字符串末尾添加\ 0非常奇怪。通过初始化char * a =“foo \ 0”,可以创建一个包含5个字符的字符串文本,最后有两个字节。 – 2012-02-09 13:44:33