...语句printf(“%d\n”,strlen(strcpy(s1,s2)));后的输出结果是?_百 ...
发布网友
发布时间:2024-09-30 03:18
我来回答
共3个回答
热心网友
时间:2024-10-18 05:42
strcpy(s1,s2)函数的返回值是s1
你这条语句执行的结果是“1234”,因为strcpy()函数是覆盖的,想不覆盖,而是接在后面,需要用函数strcat()
strlen计算的是字符串的长度,遇到\0'即停止,'\0'不包含在计算结果内
热心网友
时间:2024-10-18 05:39
char* strcpy会出错。
热心网友
时间:2024-10-18 05:37
渔:自己写测试程序看结果,实践是最好的老师。
鱼:
(1) strcpy是复制,不是追加,结果是”1234“,要是想要在后边追加,用strcat函数。
(2) strlen只计算字符串长度,不包括 '\0' 。所以对"123451234"做strlen运算是9
P.S. 初始化时要 char *s1="12345", *s2="1234"; 不然会出错的,因为s2如不是一个指针,它是不能指向一个字符串“1234”的首地址的。