C prime rPlus 5版319页第三个题程序不懂最后四行,调试发现没有这几行运行会重复一个字母,想半天没想通

include <stdio.h>

include <ctype.h>

void word(char *p);
int main(void)
{
char a[81];
puts("input your string:");
gets_s(a,81);
word(a);
puts(a);

return 0;

}

void word(char p)
{
int begin,end;
for(begin=0; isspace( *(p+begin) ) ;begin++)
continue;
for(end=begin; !isspace( *(p+end) ) ;end++)
continue;
*(p+end) = '\0';
for(;
(p+begin) != '\0';p++)
*p = *(p + begin);
*p='\0';
}

阅读 2.7k
2 个回答

最后一个for循环, 不应该是(p+begin) != '\0', 改成*(p+begin) != '\0'.

楼上正解!!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进