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