C++ 理解<;字符串>;C+中的字符串数组+;
使用字符串库,我试图允许用户输入一些符号行,稍后我将翻转这些符号行。对我来说,最明显的方法似乎是使用字符串数组,然而,尽管我相信我的输入系统是正确的,但我的输出总是大量的随机符号字符串,最终导致“中止”。我想做的事不可能吗?如果是,为什么,如果不是,我将如何着手修复此错误C++ 理解<;字符串>;C+中的字符串数组+;,c++,arrays,string,C++,Arrays,String,使用字符串库,我试图允许用户输入一些符号行,稍后我将翻转这些符号行。对我来说,最明显的方法似乎是使用字符串数组,然而,尽管我相信我的输入系统是正确的,但我的输出总是大量的随机符号字符串,最终导致“中止”。我想做的事不可能吗?如果是,为什么,如果不是,我将如何着手修复此错误 #include <iostream> #include <string> using namespace std; /* Function Declarations */ string flipHo
#include <iostream>
#include <string>
using namespace std;
/* Function Declarations */
string flipHouse();
int main() {
string flipped = flipHouse();
cout<<flipped;
return 0;
}
string flipHouse() {
int n;
cout<<"Enter the number of lines: ";
cin>>n;
string house[n];
cout<<"Enter the house image:"<<endl;
for (int i = 0; i < n+1; i++)
getline(cin,house,'\n');
for (int i = 0; i < n+1; i++)
cout<<house[i];
return house[n];
}
#包括
#包括
使用名称空间std;
/*函数声明*/
字符串flipHouse();
int main(){
字符串翻转=flipHouse();
库特
此数组包含n
字符串。有效索引为0…n-1。未定义越界访问数组的行为
这里返回索引n中的字符串。这也是最后一个索引的后面一个。程序的行为未定义
另一个问题是<>代码> n>代码>不是编译时常量值。因此,它可能不被用作C++中数组的大小。
这是为您编译的吗?“翻转是什么意思?@ DavIDo是的,它确实是这样的。@如果用户输入//[,输出将是]”\0x49602D2。。非常感谢!这是否意味着我不能将变量作为数组中的字符串数?@DylanDalal不一定。您可以将常量变量与编译时常量初始化器一起使用。谢谢你们!我一定会研究这两个建议。string house[n] > <代码> n>代码>变量实际上不是有效的C++。可变长度数组是一些编译器支持的非标准扩展。如果您想要一个容器,它有一组代码< n>代码>字符串,请使用<代码>向量房子(n)< /> >或(更完全)<代码>:STD::vector房子(n)< /代码>。
string house[n];
for (int i = 0; i < n+1; i++)
cout<<house[i];
return house[n];