Example - https://rextester.com/DGDTO79874
#include <stdio.h>
int main(void)
{
char buffer_1[32];
char buffer_2[32];
unsigned int len_1 = 0;
unsigned int len_2 = 0;
memset(buffer_1, '\0', sizeof(buffer_1));
memset(buffer_2, '\0', sizeof(buffer_2));
int result_1 = sscanf("hello_1", "%31c%n", buffer_1, &len_1);
int result_2 = sscanf("hello_2", "%31s%n", buffer_2, &len_2);
printf("%s - %u - result %d\n", buffer_1, len_1, result_1);
printf("%s - %u - result %d\n", buffer_2, len_2, result_2);
return 0;
}
The result:
As you can see if "sscanf" fails - it returns "-1". So, it is important to check the result.
If I find something - I will let you know.