在C ++中连接char二维数组元素和int

时间:2013-03-11 17:13:28

标签: c++ char int concat

我有一个2D字符数组,

static char a[25][25];

考虑填充数字的矩阵。
主要代码:

for(i=0;i<25;i++){
if(a[pos][pos]!='0'){
            strcpy(result,(char)i);
            strcat(a[pos][pos],result);
        }}

'pos'是我生成的数字。我想连接一个元素,比如说[i] [j]和整数'i'。我试过这个网站的一些帖子,但他们仍然给我不同的错误

error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
/usr/include/c++/4.6/bits/basic_string.tcc:214:5: error:   initializing argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]’ [-fpermissive]
matrix.cpp:42:58: error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
/usr/include/c++/4.6/bits/basic_string.tcc:214:5: error:   initializing argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]’ [-fpermissive]

我是新手。有谁能解释一下我哪里出错了,最好的解决方法是什么?谢谢。

1 个答案:

答案 0 :(得分:0)

如果没有更多详细信息,有点难以回答,但这里就是......

数组中的每个元素(如[i] [j])都是char

类型

这意味着它基本上是一个单个字符

你不能真正地将一个整数连接起来并将它放在一个char内,对于初学者来说,整数本身比整个char更大(按字节方式),所以很明显它不能适合那里

也许你真的想让你的数组中的每个元素都成为字符串(多个字符)而不是单个字符。如果是这种情况,那么每个元素可能都需要是char*类型,所以你会得到:

static char* a[25][25];

如果你这样做,你需要分配你的字符串(使用newmalloc)并使用标准库的各种字符串处理函数处理它们(接受char*作为参数)。如果我根据你得到的错误正确猜测,那就是你要做的......