2016-11-06 47 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好点,谢谢。 –