【问题标题】:Using strcpy with a char to a string? [duplicate]使用带有字符的 strcpy 到字符串? [复制]
【发布时间】:2017-04-02 13:59:00
【问题描述】:

我不知道如何将输入的空格存储在字符串中,因此我先将其存储在 char 中,然后我想将其复制到字符串中。

string name[2]={"Sample name"};
char apname[50];

cout << "Input Name: ";
cin.getline(apname,sizeof(apname));
strcpy (apname,name[2]);

如果有更简单的方法,请帮助我。

【问题讨论】:

    标签: c++


    【解决方案1】:

    这是更好的方法:

    std::string line;
    std::getline(std::cin, line);
    std::cout << "You said: " << line << "\n";
    

    通过错误检查、提示和重复,它会是:

    for (std::string line;
         (std::cout << "Input name: ") && std::getline(std::cin, line); )
    {
        std::cout << "You said: " << line << "\n";
    }
    std::cout << "Goodbye\n";
    

    【讨论】:

    【解决方案2】:

    除了跳过空格的运算符&lt;&lt; 之外,C++ 标准库还为字符串提供了std::getline 函数重载。改用它:

    std::string name;
    std::getline(cin, name);
    

    你调用的函数

    strcpy(apname, name[2]);
    

    不正确有几个原因:

    • 您不能将字符直接复制到string
    • name[2] 在包含两个项目的数组上引用了超出数组末尾的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2021-07-19
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多