获取错误无法将'int'转换为'char *'

时间:2014-05-17 19:23:48

标签: c++ turbo-c++ turbo-c

我想将状态名称及其大写存储在2D数组中,如下所示

State     | Capital
----------|--------
Bihar     | Patna
----------|--------
Jharkhand | Ranchi
----------|--------
Gujarat   | Gandhinagar

我尝试使用Turbo C ++下面的代码执行此操作

#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
   char capt[20];
   char stat[20];
   char capt_stat[5][2];
   for(int i=0;i<5;i++)
   {
      cin>>capt;
      cin>>stat;
      for(int j=0;j<1;j++)
      {
     strcpy(capt_stat[i][j],stat);
     strcpy(capt_stat[i][j+1],capt);
      }
   }
   for(int i=0;i<5;i++)
   {
      for(int j=0;j<1;j++)
      {
         cout<< capt_stat[i][j]<<"  "<<capt_stat[i][j+1];
      }
      cout<<endl;
   }
}

但是收到错误无法在第18行将'int'转换为'char *' -

  

的strcpy(capt_stat [i] [j],STAT);

请指导我出错了什么?

2 个答案:

答案 0 :(得分:3)

表达式capt_stat[i][j]是单个char,而不是strcpy所期望的字符串。

答案 1 :(得分:0)

您希望capt_stat[i][j]的类型为char *

声明为

char capt_stat[5][2][20]; // 20 is the maximum length of each string