把它注释掉运行看看就知道干嘛用的。
以下是引用ke_liu在2020-3-14 11:39:21的发言:
请问一下"while(*p1)*p1++ = 0;"这句是干什么的?
请问一下"while(*p1)*p1++ = 0;"这句是干什么的?
程序代码:#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int m;
string str,str1;
int StringLength(string);
void Partial_replication(string,int,string);
cout<<"请输入一个字符串:"<<endl;
cin>>str;
cout<<"请输入被复制的部分字符串的起始字符在原字符串中的位置m(m<"<<StringLength(str)<<")";
cin>>m;
Partial_replication(str,m,str1);
return 0;
}
void Partial_replication(string str,int m,string str1)
{
int StringLength(string str);
char *p=&str[0];
int i=0;
for(m=m-1;m;p++,m--)
*p=0;
str1=str;
cout<<str1<<endl;
}
int StringLength(string str)
{
char *p;
int i=0;
for(p=&str[0];*p!='\0';p++)
i++;
return i;
}