C skipping one command of a function? [duplicate]

Point 1 [Programmatic error]

The problem here is the usage with %c format specifier. It counts the previously entered \n, stored by pressing the ENTER key after previous input. What you want is

scanf(" %c", &tag[i].owner);
       ^
       |
    note the space

to skip any leading whitespace like character (including \n) before the actual input.

Point 2 [Logical Error]

As per your code here, to scan a string input, you need to use %s format specifier.

So, finally, your code should look like

   scanf("%s", tag[i].owner);    // if tag[i].owner is char array

or

  scanf(" %c", &tag[i].owner);    // if tag[i].owner is a char, just in case

Leave a Comment