有关c语言字符串函数的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:21:18
以下语句正确的是(D)
A.char s[5]="abc",*p="defg";strcat(s,p);
B.char s[5]="abc",*p="defg";strcpy(p,s);
C.char s[5]="abc",*p="defg";strcat(p,s);
D.char s[5]="abc",*p="defg";strcpy(s,p);

请解释下为什么ABC不对谢谢

A:字符串连接,S会溢出
B:P只是一个指针,你需要给它指定一个内存空间,比如
CHAR PP[10], *P = PP
C:与B差不多,一个问题。

原型:extern char *strcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

你看看 应该明白了吧~!
下面是STRCAT
原型:extern char *strcat(char *dest,char *src);
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'

要注意A答案不对是因为 数组s的容量不够容纳两个数组连接之后的字符串

A:字符串连接,S中只有能存4个,连起来就有7个,s 是存不下的,
B:P是一个指针,你需要用malloc()函数给它分配内存空间.p=(char *)malloc(8*siseof(char));可以给p分配8个字符型的的内存空间.
C:至于c 就和b 是一个意思了,没什么好说的。

P是常量,指针S不能直接赋给常量