Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 理解<;字符串>;C+中的字符串数组+;_C++_Arrays_String - Fatal编程技术网

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