我有一个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]
我是新手。有谁能解释一下我哪里出错了,最好的解决方法是什么?谢谢。
答案 0 :(得分:0)
如果没有更多详细信息,有点难以回答,但这里就是......
数组中的每个元素(如[i] [j])都是char
这意味着它基本上是一个单个字符
你不能真正地将一个整数连接起来并将它放在一个char
内,对于初学者来说,整数本身比整个char
更大(按字节方式),所以很明显它不能适合那里
也许你真的想让你的数组中的每个元素都成为字符串(多个字符)而不是单个字符。如果是这种情况,那么每个元素可能都需要是char*
类型,所以你会得到:
static char* a[25][25];
如果你这样做,你需要分配你的字符串(使用new
或malloc
)并使用标准库的各种字符串处理函数处理它们(接受char*
作为参数)。如果我根据你得到的错误正确猜测,那就是你要做的......