C++ 使 char 数组在输入时识别空格

标签 c++ arrays

我正在尝试制作一个程序来翻转您输入的单词。当我尝试写这个单词时,问题就出现了,它要求输入两次:

cin >> Arr >> myStr;

它询问两次是合乎逻辑的,但每次我尝试使用 getline 时,编译器都会给出一个错误(即使它有效,我也必须给出输入两次),并且我需要它在字符数组中包含空格。

这是我的完整代码:

#include <iostream>
#include <string>

using namespace std;

string myStr;
string newVal;
int i;

int main()
{
    char Arr[i];
    cout << "Enter: ";
    cin >> Arr >> myStr;

    for (i = myStr.length(); i >= 0; i--)
    {   
        cout << Arr[i];
    }

    cout << endl;

    return 0;
}

循环有效。

第一个问题可以通过正确使用 getline 来解决。

第二个,我不知道(使用单个输入分配两个变量)。

提前致谢,如果这是一个太过荒谬的问题,我深表歉意。

最佳答案

也许你可以尝试看看这个解决方案,它比你的更具 C++ 风格:

 #include <iostream>
 #include <string>

 int main() {
      std::string myStr;

      std::cout << "Please give me a string: ";

      if(std::getline(std::cin, myStr)) {
           for(std::string::reverse_iterator it = myStr.rbegin(); 
               it != myStr.rend(); 
               ++it) {
               std::cout << *it;
               }

               std::cout << std::endl;

        }


}

我建议您在 C++ 中始终使用 std::string,因为它具有您可能需要的所有方法和函数。因此,不要像在 C 中那样浪费时间在 char 数组上。

关于C++ 使 char 数组在输入时识别空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25226115/

相关文章:

python - 找不到 ctypes 错误 AttributeError 符号,OS X 10.7.5

c++ - 我如何使用 libavfilter 在我的视频播放器软件中去隔行帧

c++ - 安排这门课的最佳方式是什么?

javascript - 通过循环内的数组属性过滤集合

java - 如何将两个数组相加并得到总和的平均值?

arrays - 在 postgres 中查询 JSON[] 类型

c++ - 在 Visual Studio 2013 中添加现有 (GitHub) C++ 项目(无解决方案文件)

c++ - 为什么我的线程调用函数对象而不是将其返回值分配给 packaged_task 的 future 对象?

c - 在 C 中搜索数组

Java 怎样的内存效率更高?