求一道C程序设计题的方法

来源:百度知道 编辑:UC知道 时间:2024/06/24 10:21:02
应该算是很容易的一道题目吧,要求用指针做:
将字符串中前导和后随的空白字符给删去,字符串中间连续的多个空白字符只保留一个,去掉多余的空白符.
" ad f g s d"变成" ad f g s d"
字符串中间的多个空格只保留一个
最好是有 解题的思路,否则我会看不懂的,因为刚刚学C程序设计。我们才学到指针。

#include <string.h>

bool ChangeString(const char *szSrc, char *szDes);

int main(int argc, char* argv[])
{
char *p = " H ello Wor ld ";
char szdes[20];

ChangeString(p, szdes);

printf("%s\n", szdes);

return 0;
}

bool ChangeString(const char *szSrc, char *szDes)
{
if(szSrc == NULL || szDes == NULL)
{
return false;
}

if(strlen(szSrc) > strlen(szDes))
{
return false;
}

bool bPreSpaceEnd = false;
bool bSaveSpace = false;

while(*szSrc != '\0')
{
if((*szSrc) != ' ')
{
bPreSpaceEnd = true;
bSaveSpace = true;
*szDes ++ = *szSrc++;
}
else
{
if(bSaveSpace)
{
*szDes ++ = *szSrc++;
bSaveSpace = false;
}
szSrc ++;
}

if(!bPreSp