首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >要在char数组中指定特定字符。

要在char数组中指定特定字符。
EN

Stack Overflow用户
提问于 2022-05-15 14:05:34
回答 1查看 40关注 0票数 -3

我创建了一个char数组,基本上输入行数和列数,并输入每一行和每列的字母,例如xy。基本上,就像一个普通的数组但是有字母。输入字母并使用数组结束后,我希望输入2个数字,以便在数组中指定特定的char。例如,我的数组是3x3。我用字符xy填充数组。在我这样做后,我进入2 2。在第2行和第2列,字母是y。所以我想打印出y

这是我的密码。

代码语言:javascript
运行
复制
#include <iostream>

using namespace std;

int main()
{
  int x,y;
  cin>>x>>y;
  char n[x][y];
  for(int i=0;i<x;i++)
  {
      for(int j=0;j<y;j++)
      {
          cin>>n[i][j];
      }
  }
  int a,b;
  cin>>a>>b;
  cout<<n[a][b];
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-15 14:30:43

给定程序的主要问题是,在标准C++中,数组的大小必须是编译时间常数。这意味着以下内容无效:

代码语言:javascript
运行
复制
int x,y;
cin>>x>>y;
char n[x][y];//not standard C++ because x and y are not constant expressions

要解决这个问题,可以使用std::vector<char>,如下所示:

代码语言:javascript
运行
复制
#include <iostream>
#include<vector>


int main()
{
  int x,y;
  std::cin>>x>>y;
  //create a 2D vector
  std::vector<std::vector<char>> n(x, std::vector<char>(y)); 
  
  //iterate through rows 
  for(auto& row: n)
  {
      //iterate through each element in the row
      for(auto& col: row)
      {
          std::cout<<"enter element: "<<std::endl;
          std::cin>>col; //take input from user
      }
  }
  int a,b;
  std::cout<<"a and b"<<std::endl;
  std::cin>>a>>b;
  std::cout<<"element at position: "<<a<<" "<<b <<" is: "<<n[a][b];
}

工作演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72248986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档