C语言问题:将给定的原字符串中的所有前导空白和尾部空白删除,但保留非空字符之间的空白”的算法和六横图

来源:百度知道 编辑:UC知道 时间:2024/06/21 16:09:28
各位大哥小弟这题不知道
求求个位帮帮忙啊
谢谢咯

给你写了trim_sp(char *str){}; 调用它就去掉首尾空白。
算法:测字符串长度,从字符串尾部数,有几个空白,用赋'\0',砍去。
从字符串头部数,有几个空白,用向左赋值复制的方法,把字符串移到最左边。
-----
六横图 -- 不懂。

#include<stdio.h>

void trim_sp(char *str){
int len,i,j;
len = strlen(str);
while (str[len-1] == ' ') len--;
str[len] = '\0';
i=0;
while (str[i] == ' ') i++;
for(j=0;j<=len-i;j++) str[j]=str[j+i];
}

void main ()
{
char str[] = " abcd kkk hhh jjjj ";

trim_sp(str);
printf("|%s|\n",str);

}

我的算法是在建立一个字符数组,将原来的字符数组附到新数组里,如果遇到空白就pass过去