帮我解释一下这段代码的意思..
发布网友
发布时间:2022-05-10 18:25
我来回答
共1个回答
热心网友
时间:2023-10-21 15:57
#include <iostream>
using namespace std;
//将src指向的字符串(字符数组)拷贝到dest指向的空间。
void string_copy(char*dest,const char*src)
{
while((*dest++=*src++)!='\0');
}
//将src指向的字符串的前len个字符拷贝到dest指向的空间。
void string_copy(char*dest,const char*src,int len)
{
//该while循环停止有两种情况:一是已经拷贝了len个字符,每拷贝一个字符len减一,len变为0的时候就中止循环;二是拷贝到了字符串结尾处的'\0'。
while(len&&(*dest++=*src++)!='\0')
--len;
//如果上一个while中止是因为拷贝到了字符串结尾,即源字符串的长度小于len,则将目标字符串的后面添加'\0',直到第len个字符。从该程序看,这个while循环可以不要,不影响结果。
while(len--)
*dest++='\0';
}
char misspiggy[20],kermit[20];
main()
{
//分别测试两个string_copy,根据函数参数个数和类型的不同会选择调用合适的一个。
string_copy(misspiggy,"miss piggy");
string_copy(kermit,"kermit,the file transfer protocol",6);
cout<<kermit<<"and"<<misspiggy;
}