在C程序中遇到某个字符串时,如何停止从输入中插入到一个字符串数组中?

问题描述 投票:0回答:1

我有一个从输入中读取一个字符串并插入到数组中的函数是用来循环输入字符串插入到一个字符串数组中的。但是如果一个字符串=="readuntilthisline",循环就会中断。我写的函数仍然会将该字符串添加到数组中。有什么办法可以让我停止读取这个字符串?这是我的函数的样子。

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. 
c string function pointers multidimensional-array
1个回答
0
投票

根据你的代码,这应该是可行的。然而,变量 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++;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.