#include <iostream>
#include <string.h>
int main()
{
{
printf("With STRTOK :\n");
char str[] = "2019-12-24 09:00:00";
char separators[] = "- :";
const size_t MAX_VALUES = 6;
int values[MAX_VALUES];
size_t valuesCount = 0;
char *p = strtok( str, separators );
while ( p != NULL && valuesCount < MAX_VALUES )
{
values[ valuesCount++ ] = atoi(p);
p = strtok( NULL, separators );
}
for ( size_t i = 0; i < valuesCount; i++ )
{
printf( "%d\n", values[ i ] );
}
}
{
printf("\n\nWith STRTOK_R :\n");
char str[] = "2019-12-24 09:00:00";
char separators[] = "- :";
const size_t MAX_VALUES = 6;
int values[MAX_VALUES];
size_t valuesCount = 0;
char *p = str;
char *t;
while ( ( t = strtok_r( p, separators, &p ) ) && valuesCount < MAX_VALUES )
{
values[ valuesCount++ ] = atoi(t);
}
for ( size_t i = 0; i < valuesCount; i++ )
{
printf( "%d\n", values[ i ] );
}
}
{
printf("\n\nWith SSCANF :\n");
char str[] = "2019-12-24 09:00:00";
const size_t MAX_VALUES = 6;
int values[MAX_VALUES];
if ( sscanf( str, "%d-%d-%d %d:%d:%d", &values[0], &values[1], &values[2], &values[3], &values[4], &values[5] ) == MAX_VALUES )
{
for ( size_t i = 0; i < MAX_VALUES; i++ )
{
printf( "%d\n", values[ i ] );
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CiAKaW50IG1haW4oKQp7Cgl7CgkJcHJpbnRmKCJXaXRoIFNUUlRPSyA6XG4iKTsKIAoJCWNoYXIgc3RyW10gPSAiMjAxOS0xMi0yNCAwOTowMDowMCI7CiAKCQljaGFyIHNlcGFyYXRvcnNbXSA9ICItIDoiOwoJCWNvbnN0IHNpemVfdCBNQVhfVkFMVUVTID0gNjsKCQlpbnQgdmFsdWVzW01BWF9WQUxVRVNdOwoJCXNpemVfdCB2YWx1ZXNDb3VudCA9IDA7CiAKCQljaGFyICpwID0gc3RydG9rKCBzdHIsIHNlcGFyYXRvcnMgKTsKCQl3aGlsZSAoIHAgIT0gTlVMTCAmJiB2YWx1ZXNDb3VudCA8IE1BWF9WQUxVRVMgKQoJCXsKCQkJdmFsdWVzWyB2YWx1ZXNDb3VudCsrIF0gPSBhdG9pKHApOwoJCQlwID0gc3RydG9rKCBOVUxMLCBzZXBhcmF0b3JzICk7CgkJfQogCgkJZm9yICggc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzQ291bnQ7IGkrKyApCgkJewoJCQlwcmludGYoICIlZFxuIiwgdmFsdWVzWyBpIF0gKTsKCQl9Cgl9CiAKCXsKCQlwcmludGYoIlxuXG5XaXRoIFNUUlRPS19SIDpcbiIpOwogCgkJY2hhciBzdHJbXSA9ICIyMDE5LTEyLTI0IDA5OjAwOjAwIjsKIAoJCWNoYXIgc2VwYXJhdG9yc1tdID0gIi0gOiI7CgkJY29uc3Qgc2l6ZV90IE1BWF9WQUxVRVMgPSA2OwoJCWludCB2YWx1ZXNbTUFYX1ZBTFVFU107CgkJc2l6ZV90IHZhbHVlc0NvdW50ID0gMDsKIAoJCWNoYXIgKnAgPSBzdHI7CgkJY2hhciAqdDsKIAogICAgCXdoaWxlICggKCB0ID0gc3RydG9rX3IoIHAsIHNlcGFyYXRvcnMsICZwICkgKSAmJiB2YWx1ZXNDb3VudCA8IE1BWF9WQUxVRVMgKQogICAgCXsKICAgIAkJdmFsdWVzWyB2YWx1ZXNDb3VudCsrIF0gPSBhdG9pKHQpOwogICAgCX0KIAoJCWZvciAoIHNpemVfdCBpID0gMDsgaSA8IHZhbHVlc0NvdW50OyBpKysgKQoJCXsKCQkJcHJpbnRmKCAiJWRcbiIsIHZhbHVlc1sgaSBdICk7CgkJfQoJfQogCgl7CgkJcHJpbnRmKCJcblxuV2l0aCBTU0NBTkYgOlxuIik7CiAKCQljaGFyIHN0cltdID0gIjIwMTktMTItMjQgMDk6MDA6MDAiOwogCgkJY29uc3Qgc2l6ZV90IE1BWF9WQUxVRVMgPSA2OwoJCWludCB2YWx1ZXNbTUFYX1ZBTFVFU107CiAKCQlpZiAoIHNzY2FuZiggc3RyLCAiJWQtJWQtJWQgJWQ6JWQ6JWQiLCAmdmFsdWVzWzBdLCAmdmFsdWVzWzFdLCAmdmFsdWVzWzJdLCAmdmFsdWVzWzNdLCAmdmFsdWVzWzRdLCAmdmFsdWVzWzVdICkgPT0gTUFYX1ZBTFVFUyApCgkJewoJCQlmb3IgKCBzaXplX3QgaSA9IDA7IGkgPCBNQVhfVkFMVUVTOyBpKysgKQoJCQl7CgkJCQlwcmludGYoICIlZFxuIiwgdmFsdWVzWyBpIF0gKTsKCQkJfQoJCX0KCX0KIAoJcmV0dXJuIDA7Cn0=