标题:从一个字符串中去除多余的空格(用指针描述)
取消只看楼主
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
结帖率:100%
 问题点数:0 回复次数:2 
从一个字符串中去除多余的空格(用指针描述)

/*

Name: 从一个字符串中去除多余的空格(用指针描述)

Copyright:

Author:

Date: 18-09-07 19:38

Description: 函数原形: void deblank(char string[])

功能:如果一个字符串有一个地方由一个或多个连续空格符组成,就把它们改为单个空格字符

出处:《c和指针》Page65No.7

Compiler:Dev-C++ 4.9.9.2

*/

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

void deblank(char string[])

{

char *pstr,*_pstr,temp; //声明两个指针变量,和一个temp(用来暂时存储一个字符)

pstr=string; //psrt指向要处理的字符串

while(*pstr!=EOF) //如果不是字符串结尾则循环

{

if(*pstr==' ') //如果第一个下标变量的值是空格符

{

pstr++; //指向下一个下标变量

_pstr=pstr; //_pstr_pstr同步

if(*_pstr==' ') //如果下一个下标变量也是空格符

{

while(*_pstr!=EOF) //后面的数组元素整体向前移动一个位置

{

temp=*_pstr;

_pstr--;

*_pstr=temp;

_pstr++;

_pstr++;

}

_pstr=pstr; //_pstr指向原位置,然后返回if(*_pstr==' ')继续判断当前位置是否为空格符

}

}

else

pstr++; //如果不是空格则继续向下移动指针

}

}

int main(void)

{

char str[50],msg[]={"Input a string:"};

puts(msg);

gets(str);

deblank(str);

puts(str);

getch();

return 0;

}

这段代码有问题吗?怎么结果老是不对??

晕,一段代码弄到半夜,真郁闷。

2007919星期三 0:45:46

搜索更多相关主题的帖子: 指针 空格 字符 描述 
2007-09-22 20:05
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
得分:0 
通过.LS的强,我写了那么长用这么几句话就概括了,这本经书我取了

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-09-22 20:27
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
得分:0 
学习了

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-09-23 16:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172152-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154259 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved