用指针实现去除字符串多余空格,比如" string literal "
去除之后 "string literal",中间只保留一个空格,前后无空格。
int main(void)
{
char ps[] =" string literal ";
char *p= ps,*q= ps;
intn=0; boolflag = false;
while(*q!='\0')
{
if (*q!=' ')
{
flag = true;
*p++=*q++; //不是空格,复制
n++;
}
else if(flag) //如果是第一个空格仍然要复制
{
flag = false;
*p++=*q++;
n++;
}
else
{
q++; //不复制
}
}
*p='\0'; if (*(p-1)==' ')
{
n--;*p--; *p='\0';
}
for(int i=0 ; i
cout<<*p;
}
用指针实现去除字符串多余空格,比如" string literal "
去除之后 "string literal",中间只保留一个空格,前后无空格。
int main(void)
{
char ps[] =" string literal ";
char *p= ps,*q= ps;
intn=0; boolflag = false;
while(*q!='\0')
{
if (*q!=' ')
{
flag = true;
*p++=*q++; //不是空格,复制
n++;
}
else if(flag) //如果是第一个空格仍然要复制
{
flag = false;
*p++=*q++;
n++;
}
else
{
q++; //不复制
}
}
*p='\0'; if (*(p-1)==' ')
{
n--;*p--; *p='\0';
}
for(int i=0 ; i
cout<<*p;
}