C++ ->尝试逐字阅读一行文本。如何使指针等效于用于存储输入的当前二维数组



编写了这个程序来逐字读取用户输入

#include<iostream>
#include<cstring>
int main()
{
using namespace std;
int i=0;
char input[50][50];
cout<<"Enter input: ";
cin>>input[i];
while(strcmp("q",input[i]))
{
i++;
cin>>input[i];
}
cout<<endl;
for(int j=0;j<i;j++)
cout<<input[j]<<" ";
return 0;
}

当前使用二维字符数组来存储输入。我不太擅长指针,因为我刚刚读到了这些。

是否有等效于char input[50][50]的指针? 我知道这个范围[50]是个坏主意。使用指针应该可以解决吗?

我尝试这样做 ->char* input= new char[50],但我想这是错误的方式?char* input= new char[50]创建指向字符串数组的指针还是指向字符数组的指针?

请保持简单。刚从数组开始。

char* input= new input[50];是错误的;

char * input = new char[50];是正确的。

它创建一个动态的 1D 字符数组。它不是指针数组。如果要创建 2D 字符数组

这是语法

char * arr = new char*[rows]; //creates an 1D array of character pointers
for(int i=0;i<rows;i++)
arr[i]=new char[columns]; //Creates Array for every Row, to make it 2D array

您可以假定 2D 字符数组是 1D 字符串数组,因为字符串也是一个字符数组。 更多 我建议您使用可以轻松操作字符串的字符串。

最新更新