Как мне прекратить вставку входных данных в массив строк, когда в программе C встречается определенная строка? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть функция, которая читает одну строку из ввода и вставляет в массив, используется для l oop через строки ввода для вставки в массив строк. Однако если строка == "readuntilthisline", l oop прерывается. Функция, которую я написал, все еще добавляет строку в массив. В любом случае, я могу перестать читать эту строку? Вот как выглядит моя функция:

typedef char String[300];
int main() {
    String strings[10];
    int string_number=0;
    function(strings,&string_number);
    return 0;
}

void function(String strings[], int *string_number){
    int i=0;
    while (read_one_string(strings[*string_number],300) == 1) {
            if (strncmp(strings[i],"readuntilthisline") == 0){
                    break;
            }
            *string_number+=1;
            i++;
    }
}

//The read_one_string function reads one string at a time from input using getchar and returns 1 if last character read is not EOF. 

1 Ответ

0 голосов
/ 27 апреля 2020

На основании вашего кода это должно работать. Тем не менее, переменная i, скорее всего, избыточна, и вы должны иметь возможность управлять с помощью только string_number.

void function(String strings[], int *string_number){
    int i=0;
    String temp;
    while (read_one_string(temp,300) == 1) {
            if (strncmp(temp,"readuntilthisline") == 0){
                    break;
            }
            strcpy(strings[*string_number],temp);
            *string_number+=1;
            i++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...