读书人

一个很简单的字符串去掉空格的有关问题

发布时间: 2012-08-13 13:21:53 作者: rapoo

一个很简单的字符串去掉空格的问题

C/C++ code
#include <stdio.h>void func(char *buf){    char *p,*q;    p=q=buf;    while(*(++q)!='\n')  //这条语句换成while(*q++!='\n')的话就会出现断错误,    {        if(*p==' ')        {            if(*q!=' ')            {                *p=*q;                *q=' ';                p++;            }        }        else          p++;    }}int main(void){    char buf[100];    fgets(buf,100,stdin);    func(buf);    printf("%s",buf);    return 0;}

就是上面写的问题,感觉q++和++q效果是一样的啊

[解决办法]
单步调试和设断点调试是程序员必须掌握的技能之一。

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

[解决办法]
把*q=' '去掉就好了。

探讨

引用:

引用:

a[5]={1,2,3,4,5};
int *p = a;
int a = *(p++);与
int a = *(++p);
一样么? 自己试试a是多少

哦,下边不能是a了
a[5]={1,2,3,4,5};
int *p = a;
int c = *(p++);与
int c = *(++p);
一样么? ……

读书人网 >C语言

热点推荐