问题 单项选择题

下面程序的输出结果是() #include<iostream.h> #include<string.h>void main( ) { char p1[10] ,p2[10] ; strcpy(p1,"abc") ; strcpy(p2,"ABC") ; char str[50] ="xyz"; strcpy(str+2,strcat(p1,p2) ) ; cout < < str;}

A.xyzabcABC

B.zabcABC

C. xyabcABC

D. yzabcABC

答案

参考答案:C

解析:

该函数的调用方式是strcpy(字符数组,字符串) ,其中“字符串”可以是串常量,也可以是字符数组。函数的功能是将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志’\0’一起复制。②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy( ) 函数来处理。strcat (字符数组,字符串) 的功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。②连接前两个字符串都有结束标志’\0’,连接后“字符数组”中存储的字符串的结束标志’\0’被舍弃,只在目标串的最后保留一个’\0’。

填空题
问答题 简答题