我正在使用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