BET*_*SCH 2 c parsing pic18 mplab-c18
我正在使用 C 在 MCU 上进行编程,我需要将包含 IP 地址的空终止字符串解析为 4 个单字节。我用C++做了一个例子:
#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;
}
Run Code Online (Sandbox Code Playgroud)
此代码在新行中打印每个字节 192、168、0 和 1。现在我需要单个字符中的每个字节,例如字符 byte1、byte2、byte3 和 byte4,其中 byte1 包含 1,byte4 包含 192...或者在结构 IP_ADDR 中,然后返回该结构,但我不知道如何在C。 :(
您可以逐个字符地执行此操作,就像您问题中的 C++ 版本一样。
/* ERROR CHECKING MISSING */
#include <ctype.h>
#include <stdio.h>
int main(void) {
char *str = "192.168.0.1", *str2;
unsigned char value[4] = {0};
size_t index = 0;
str2 = str; /* save the pointer */
while (*str) {
if (isdigit((unsigned char)*str)) {
value[index] *= 10;
value[index] += *str - '0';
} else {
index++;
}
str++;
}
printf("values in \"%s\": %d %d %d %d\n", str2,
value[0], value[1], value[2], value[3]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25961 次 |
最近记录: |