2

約20の国の名前を1つの文字列に保存してから別の文字列にコピーしたいのですが、いつも間違いがあります。誰か助けてもらえますか?

これは私のコードです:

char array1[30][30], array2[30][30];

これは私がそれらを最初の配列に入れる方法です:

fscanf(fr, "%s", array1[i]);

これはすべて機能しますが、私がやりたいとき:

array2[0] = array1[0];

エラーが発生します:

incompatible types when assigning to type 'char[30]' from type 'char *'

私が使用するとき:

strcpy(array2[pom2], array1[i]);

エラーは表示されませんが、コピーも印刷もされません。

4

2 に答える 2

1

最初のエラー: 配列を別の配列にコピーできません。サラー値(あなたの場合は文字)をコピーするだけです。

文字列を別の文字列にコピーしたい場合は、実際にstrcpy関数 (または近親者のように) を使用strncpyする必要があります。 への呼び出しで問題がどこにあるかを確認できるように、完全なコードを提供する必要がありますstrcpy

于 2012-11-08T19:26:35.510 に答える
1

文字ごとに渡してみましたか?

for( i = 0; i < 30; i++ ){
   for( j = 0; j < 30; j++ ){
      targetArray[ i ][ j ] = sourceArray[ i ][ j ];

      /* End of the string, stop copying */
      if ( sourceArray[ i ][ j ] == '\0' ){
         break;
      }
   }
}
于 2012-11-08T19:28:03.213 に答える