我有一个char指针指向内存的地址,我需要获取该地址的内容并将其放入char数组中?
char *msg;
char cntnt[10];
msg指向“mike”,我需要将此字符串放入cntnt[10]
。
我喜欢这个
*cntnt = *msg;
当我这样做时,cntnt只能得到一个字母'm'。
请帮忙......
答案 0 :(得分:3)
使用strcpy:
strcpy(cntnt, msg);
答案 1 :(得分:3)
尝试使用strcpy
或memcpy
。
len = strlen(msg);
if (len >= sizeof(cntnt))
/* Bail out, not enough space. */
memcpy(cntnt, msg, len);
cntnt[len] = 0;
答案 2 :(得分:0)
使用memcpy
将n
个字节数从该指针复制到数组中:
char cntnt[10];
memcpy(cntnt, msg, 9);
仅当您有msg
指针指向的空终止字符串内存时,才建议使用strcpy。
答案 3 :(得分:0)
指针和数组不相等。它们在某些方面只是相似的。 因此,在您的代码之后,您只更改了数组中的一个元素。
如果要更改cntnt本地化的位置,则应编写
cntnt = msg;
如果你想将char序列的内容复制到数组,请使用strcpy,正如Tudor所说。 这是对该主题的一个很好的解释:http://c-faq.com/~scs/cclass/notes/sx8.html