C#习题疑问。
Dear all
C#第十一章课后的习题,其中对红色MARK部分无法理解。对用指针去空格的原理不是很明白。
9.编写一个函数。其参数为一个字符串,函数删除字符串中的空格。在一个可以循环读取的程序中进行测试,直到用户输入空行。对于任何输入字符串,函数都应该适用并可以显示结果。
#include <stdio.h>
void delspace(char *p1);
int main(void)
{
char str[81];
do
{
puts("input a string:");
gets(str);
delspace(str);
puts(str);
puts("input any char except q to go on.");
gets(str);
}
while(*str != 'q');
puts("Quit.");
return 0;
}
void delspace(char *p1)
{
char *p2;
while (*p1 != '\0' )
{
if (*p1 == ' ')
{
p2 = p1;
while(*p2 != '\0')
{
*p2 = *(p2+1);
p2++;
}
p1--;
}
p1++;
}
}