2012-05-08 24 views
0

私は尋ねて馬鹿げていると感じましたが、私は答えを見つけられませんでした。 「ローズ」を「ダグラス」にどのように割り当てるのですか?私はループを使わなければならないようです。Cで多次元配列に文字列を格納するにはどうすればよいですか?

#include <stdio.h> 

int main() { 

    char arr[3][12]= { "Rose", "India", "technologies" }; 
    printf("Array of String is = %s,%s,%s\n", arr[0], arr[1], arr[2]); 
    arr[0][0] = {"Douglas"}; 
    printf("Array of String is = %s,%s,%s\n", arr[0], arr[1], arr[2]); 

    return(0); 
} 
+1

「テクノロジ」には13文字が必要なため、 'arr [2]'にオーバーフローがあります。あなたのコンパイラはこれについてあなたに警告する必要があります。 –

+0

あなたはそうです。面白いのは分かってる?私はその例(http://roseindia.net/c-tutorials/c-array-string.shtml)をコピーし、 'arr [0] [0] = {" Douglas "};'部分を追加しました。 – Strawberry

+2

この例で 'void main'と' 'を使用すると、非常に大きな警告音、すなわち質の悪いインドのカレッジCコードが鳴るはずです。 –

答えて

4

あなたはstrcpy()でこれを行うことができます。

strcpy(arr[0], "Douglas"); 

strcpy()を使用して、あなたがそこに入れている文字列を保持するために先に十分なスペースがあることを確認する必要があります (プラスNUL文字を終了する)。この場合、各文字列に12バイトを割り当てているため、"Douglas"は8をとります。

関連する問題