2012-05-08 80 views
0

我覺得很尷尬,但我很難找到我的答案。我如何將「Rose」重新分配給「Douglas」?好像我必須使用循環。如何在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個。

相關問題