C 语言代码不是很理解求解析
发布网友
发布时间:2023-08-08 16:33
我来回答
共3个回答
热心网友
时间:2023-09-25 02:33
这个代码和你说的题目要求是有出入的。
题目要求, 将p2复制给p1, 如果p2超过n个, 那么只复制前n个。 如果p2不足n个, 那么复制完p2后, 填充空格直到凑足n个。
这个代码的功能, 将p2附加到p1后面,如果p2超过n个, 那么只附加前n个; 如果p2不足n个, 那么附加整个p2的所有到p1后面。从这个角度来说,这个代码实现的是strncat的功能。
除此外, 一个bug是p1结尾没有加结束符。
热心网友
时间:2023-09-25 02:34
exit是退出程序的意思。
如果括号里的是0 , 即exit(0),则表示异常退出。
如果是非0, 表示非0, 都会退出程序
热心网友
时间:2023-09-25 02:34
char *mystrncpy(char *p1, char *p2, int n)
{
char *p=p1;
while(*p1++ != '\0')
{
continue;
} //这一个while作用就是把p1移动到最后 最后一下移动到了结束符上
//所以这里先-- 一下 到达最
*--p1 = *p2;
n--; 总数--
while(n>0 && *p2 != '\0')
{
*++p1 = *++p2; //p2往p1上续
n--; //总数--
}
return p;
}