设char*1=“12345”,s2=“1234”;执行语句printf(“%d\n”,strlen(strcpy(s1,s2)));后的输出结果是?

问题描述:

设char*1=“12345”,s2=“1234”;执行语句printf(“%d\n”,strlen(strcpy(s1,s2)));后的输出结果是?
strcpy(s1,s2)函数,是将s2字符串组成新字符串存入s1中.那么结果是"123451234“还是"1234“.strlen函数为计算对应字符串的长度.那结果包括'\0’吗?如果,结果是123451234“那使用strlen函数结果为9还是10.

strcpy(s1,s2)函数的返回值是s1
你这条语句执行的结果是“1234”,因为strcpy()函数是覆盖的,想不覆盖,而是接在后面,需要用函数strcat()
strlen计算的是字符串的长度,遇到\0'即停止,'\0'不包含在计算结果内