2012-05-08 45 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个。

相关问题