2016-11-06 16 views
0

私は2つの文字列を読み、文字列にいくつかの操作を行うためにwhileループを使用するはずです。ユーザは、退室するまで複数の文字列ペアを入力することができます。どのように私はこの関数として何かをハードコピーの代わりに文字列を受け入れますか?ユーザーから入力文字を取得する方法は?

int main(int argc, const char *argv[]) 
{  
    char string[3], stringSec[2]; 
    string[0] = 'c'; 
    string[1] = 'a'; 
    string[2] = 't'; 
    stringSec[0] = 'c'; 
    stringSec[1] = 's'; 
    int array[3][4]; 

    // some functions... 

    return 0; 
} 
+0

ちょっと@AbeerSec、私の答えがあなたを助けてくれたら、それを受け入れることを検討しますか?回答を受け入れることで、コミュニティがあなたの問題を解決したことが示され、今後の読者に役立ちます。回答を受け入れる方法がわからない場合は、役に立つ[faqメタ投稿](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)があります。ありがとう。 –

答えて

1

使用fgetsそれは "出口" に等しいかどうかを確認するために、文字列とstrcmpを読むために:

while (strcmp(string, "exit")) 
{ 
    fgets(string, sizeof(string), stdin); 
    fgets(secString, sizeof(secString), stdin); 

    // perform operations on strings 
} 

は説明:

  • strcmp戻り0 2つの文字列が一致する場合。上記の例では、ループは0を返さない限り継続します。
  • fgetsは、ファイル(第3引数)から一定量のバイト(第2引数)を文字列(第1引数)に読み込みます。

注:

  • fgets

    が読み文字列から改行を削除しません。読んだ後にstring[strlen(string)-1] = '\0';を追加して削除できます。
  • #include <string.h>strcmpを使用する必要があります。
+1

これは解決策です。 'strcmp'と' string'型を使うには、 'string.h'をインクルードする必要があります。 –

+0

@EliSadoff良い点、ありがとうございます。 –

関連する問題