把它注释掉运行看看就知道干嘛用的。
以下是引用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; }