#include <iostream>
#include <string.h>
int main()
{
{
printf("strtok + strtoul\n");
char str[] = "24:6F:28:38:D1:A4";
size_t const addressLength = 6;
uint8_t broadcastAddress[addressLength];
size_t count = 0;
char * p = strtok(str, ":");
while (p != NULL && count < addressLength)
{
broadcastAddress[count++] = (uint8_t)strtoul(p, NULL, 16);
p = strtok(NULL, ":");
}
for (size_t i = 0; i < count; i++)
{
printf("%d\n", broadcastAddress[i]);
}
}
{
printf("\nstrtoul seul\n");
char str[] = "24:6F:28:38:D1:A4";
size_t const addressLength = 6;
uint8_t broadcastAddress[addressLength];
size_t count = 0;
char * p = str;
while (count < addressLength)
{
broadcastAddress[count++] = (uint8_t)strtoul(p, &p, 16);
p++;
}
for (size_t i = 0; i < count; i++)
{
printf("%d\n", broadcastAddress[i]);
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CiAKaW50IG1haW4oKQp7Cgl7CgkJcHJpbnRmKCJzdHJ0b2sgKyBzdHJ0b3VsXG4iKTsKCQkKCQljaGFyIHN0cltdID0gIjI0OjZGOjI4OjM4OkQxOkE0IjsKCQkKCQlzaXplX3QgY29uc3QgYWRkcmVzc0xlbmd0aCA9IDY7CgkJdWludDhfdCBicm9hZGNhc3RBZGRyZXNzW2FkZHJlc3NMZW5ndGhdOwoJCXNpemVfdCBjb3VudCA9IDA7CgkJY2hhciAqIHAgPSBzdHJ0b2soc3RyLCAiOiIpOwoJCQoJCXdoaWxlIChwICE9IE5VTEwgJiYgY291bnQgPCBhZGRyZXNzTGVuZ3RoKQoJCXsKCQkJYnJvYWRjYXN0QWRkcmVzc1tjb3VudCsrXSA9ICh1aW50OF90KXN0cnRvdWwocCwgTlVMTCwgMTYpOwoJCQlwID0gc3RydG9rKE5VTEwsICI6Iik7CgkJfQoJCQoJCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKCQl7CgkJCXByaW50ZigiJWRcbiIsIGJyb2FkY2FzdEFkZHJlc3NbaV0pOwoJCX0KCX0KCQoJewoJCXByaW50ZigiXG5zdHJ0b3VsIHNldWxcbiIpOwoKCQljaGFyIHN0cltdID0gIjI0OjZGOjI4OjM4OkQxOkE0IjsKCQkKCQlzaXplX3QgY29uc3QgYWRkcmVzc0xlbmd0aCA9IDY7CgkJdWludDhfdCBicm9hZGNhc3RBZGRyZXNzW2FkZHJlc3NMZW5ndGhdOwoJCXNpemVfdCBjb3VudCA9IDA7CgkJY2hhciAqIHAgPSBzdHI7CgkJCgkJd2hpbGUgKGNvdW50IDwgYWRkcmVzc0xlbmd0aCkKCQl7CgkJCWJyb2FkY2FzdEFkZHJlc3NbY291bnQrK10gPSAodWludDhfdClzdHJ0b3VsKHAsICZwLCAxNik7CgkJCXArKzsKCQl9CgkJCgkJZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQoJCXsKCQkJcHJpbnRmKCIlZFxuIiwgYnJvYWRjYXN0QWRkcmVzc1tpXSk7CgkJfQoJfQoKCXJldHVybiAwOwp9