-4

我有一个二维字符数组,

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' 是我生成的数字。我想将其中的一个元素连接起来,比如 a[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]

我是新手。谁能解释一下我哪里出了问题以及解决它的最佳方法是什么?谢谢你。

4

1 回答 1

0

如果没有更多细节,这有点难以回答,但它就在这里..

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

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

你不能真正连接一个整数并将它放在一个单一的char,对于初学者来说,整数本身比你的整数大(按字节),char所以显然它不适合在那里

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

static char* a[25][25];

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

于 2013-03-11T17:21:01.837 回答