【问题标题】:how to get input char from user?如何从用户那里获取输入字符?
【发布时间】:2016-11-06 01:09:48
【问题描述】:

所以我应该使用 while 循环来读取两个字符串并对字符串进行一些操作。用户应该能够输入多个字符串对,直到他进入 exit。我如何接受字符串而不是硬拷贝一些东西作为这个函数?

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;
}

【问题讨论】:

  • 嘿@AbeerSec,如果我的回答对您有所帮助,您会考虑接受吗?接受答案向社区表明它已经解决了您的问题,并帮助未来的读者解决他们的问题。如果您不知道如何接受答案,有一个有用的faq meta post 关于它。谢谢。

标签: c input char


【解决方案1】:

使用fgets 读取字符串并使用strcmp 检查它是否等于“exit”:

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

    // perform operations on strings
}

解释:

  • 如果两个字符串匹配,strcmp 返回 0。在上面的示例中,只要不返回 0,循环就会继续。
  • fgets 从文件(第三个参数)中读取一定数量的字节(第二个参数)到一个字符串(第一个参数)中。

注意事项:

  • fgets 不会从读取的字符串中删除尾随换行符。阅读后添加string[strlen(string)-1] = '\0';即可删除。
  • 您必须#include <string.h> 才能使用strcmp

【讨论】:

  • 这就是答案。请注意,要使用 strcmpstring 类型,您需要包含 string.h
猜你喜欢
  • 2019-04-11
  • 1970-01-01
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多