作业帮 > 综合 > 作业

谁能告诉我以下这个函数的作用是什么?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 15:12:59
谁能告诉我以下这个函数的作用是什么?
char* StrTrim( char* str )
{
char* pStr = NULL;
char* dest = str;
if( str!=NULL )
{
pStr = str;
while( (*str)==0x20 ) str++;
if( str!=dest )
{
while( *str!=0 )
{
*dest = *str;
str++;
dest++;
}
*dest=0;
}
else
{
while( *str!=0 ) str++;
dest = str;
}
--dest;
while( (*dest)==0x20 )
{
*dest=0;
dest--;
}
}
return pStr;
}
谁能告诉我以下这个函数的作用是什么?
//作用是删除字符串首尾的所有空格
char* StrTrim( char* str )
{
char* pStr = NULL;
char* dest = str;
if( str!=NULL )
{
pStr = str;
while( (*str)==0x20 ) str++;//0x20即32,即空格,这语句是找到第一个不为空格的字符
if( str!=dest )//第一个不为空格的字符不等于第一个字符,即字符串前面有空格
{
//重第一个不为空格的字符开始,重新将后面的字符复制到前面来,直到字符串结束
while( *str!=0 )
{
*dest = *str;
str++;
dest++;
}
*dest=0;//此时dest到了字符串尾
}
else//字符串前面没空格
{
while( *str!=0 ) str++;//找到字符串尾
dest = str;//赋值给dest,也就是将dest指向字符串尾
}
//上面的字符串尾是指 字符=='\0'的那个位置
--dest; //这里将dest指向'\0'前面个字符
while( (*dest)==0x20 )//字符为空格,则进入循环
{
*dest=0;//将为空格的字符赋值为'\0',标识字符串结束
dest--;//指向前一个字符
}
}
return pStr;//返回刚才传进来的地址
}