2016-11-06 80 views
0

所以我應該使用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 meta post](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,如果兩個字符串匹配。在上面的例子中,只要循環不返回0,循環就會繼續。
  • fgets從文件(第3個參數)中讀取一定量的字節(第2個參數)爲字符串(第1個參數)。

注:

  • fgets不從讀取字符串刪除尾隨的換行符。閱讀完畢後,您可以通過添加string[strlen(string)-1] = '\0';來刪除它。
  • 您必須使用#include <string.h>才能使用strcmp
+1

這是隨之而來的答案。注意,要使用'strcmp'和'string'類型,你需要包含'string.h'。 –

+0

@EliSadoff好點,謝謝。 –