Я довольно новичок в программировании на C, и у меня есть проблема, которую я пытался решить в последние дни, но сейчас я нахожусь в точке, где я не знаю, что делать.
Я читаю строку с функцией «input», которая затем разбивается на части каждый раз, когда появляется пробел. Части хранятся в массивах символов, которые пока работают нормально. Однако, когда я вызываю следующую функцию «checkInput» в main, массивы char снова становятся пустыми. Что мне нужно изменить, чтобы массивы символов не были пустыми при вызове следующей функции?
Когда я использовал scanf вместо fgets, это работало. Но почему?
Любая помощь будет высоко ценится.
void input(char* string1, char* string2, char* string3)
{
char ptr[100];
printf("Enter String: \n");
fgets(ptr, 100, stdin);
printf("%s \n", ptr);
if(ptr != NULL)
{
string1 = strtok(ptr, " \n");
printf("string1: %s \n", string1);
}
if(ptr != NULL)
{
string2 = strtok(NULL, " \n");
printf("string2: %s \n", string2);
}
if(ptr != NULL)
{
string3 = strtok(NULL, " \n \0");
printf("string3: %s \n", string3);
}
}
int main(void)
{
char string1[100];
char string2[100];
char string3[100];
input(string1, string2, string3);
checkInput(string1, string2, string3);
return 0;
}