Я хотел иметь возможность хранить массив строк. И то, как я это делал, было с петлей. Я получаю каждое ядро с помощью scanf и получаю символ char, чтобы получить пробел и проверяю, не является ли символ новой строки разрывом цикла.
for (int i = 0; i < 10; i++) {
scanf("%50s", arrayofStrings[i]);
ch = getchar();
if (ch == '\n') break;
}
Это работает в большинстве случаев. Но если у меня есть что-то вроде «Я есть» с пробелом до конца строки, оно не попадет на новую строку.
Я попытался добавить цикл while, чтобы пропустить любой «», но это не такработать так, как я хотел.
Ожидаемый результат состоит в том, что, если я наберу "I \ n", он все равно доберется до новой строки, прервет цикл и просто проигнорирует пробел.
Я изменяю свой код после предложений в комментариях.
char cha[500];
int index= 0;
fgets(cha, 500, stdin);
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 50; j++)
{
if (cha[j] != ' ' && cha[index] != '\0') {
var[i][j] = cha[index];
index++;
}
else {
action[i][j] = '\0';
index++;
break;
}
}
if (cha[index] == '\0') {
break;
}
}
action[strlen(*action)] = "\0";
printf("%s", var[0]);
, если я напишу "Никого здесь нет"
var [0] не будет иметь никого.
Но когда я проверяю с помощью strcmp(var[0], "Nobody")
, они оказываются не равными.