-4

私は2D char配列を持っています、

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ため、明らかにそこに収まりません

おそらく、配列内のすべての要素を単一の文字ではなく文字列(複数の文字)にしようとしているのかもしれません。この場合、すべての要素はおそらく typechar*である必要があるため、次のようになります。

static char* a[25][25];

これを行う場合、(newまたはを使用して) 文字列を割り当てmalloc、標準ライブラリのさまざまな文字列処理関数 (char*引数として受け入れる) でそれらを処理する必要があります。あなたが得ているエラーに応じて私が正しく推測しているなら、それはあなたがやろうとしていることです...

于 2013-03-11T17:21:01.837 に答える