编写一个函数,去掉一个字符串前后的空格字符,并在主函数中调用该函数。(c语言)

2024-11-27 02:34:06
推荐回答(4个)
回答1:

#include
#include

char *trimStr(char *str)
{
char *tmp = str;
unsigned int len = 0;

if (NULL == str)
{
return NULL;

}

while (' ' == *tmp) ++tmp;

len = strlen(tmp);
str = tmp;

if (len > 0)
{

tmp = str + len - 1;
while (' ' == *tmp) --tmp;
*tmp = '\0';
}

return str;

}

int main(void)
{
char str[20] = " 1234 ";
printf("%s", str);
trimStr(str);
printf("%s", str);
return 0;

}

回答2:

#include 
 
void removeBlank(char *p)
{
    char *t;
    t=p;
    while (*t && *t==' ')
    {
        t++;
    }
while ( (*p++=*t++)!='\0' )
{

}
while (*t=='\0'|| *t==' ')
{
*t='\0';
t--;
}
}

int main()
{
    char str[100] ={0};
    gets(str);
    removeBlank(str);
    printf(str);
    return 0;
}
33 44 33 44 55
33 44 33 44 55Press any key to continue

回答3:

#include "stdio.h"
fun(char *x)
{int i,j,a;
char *p;
a=0;
for(i=0;x[i];i++)
{if((x[i]==32)&&a==0)
continue;
if(a==0)
{a=1;
p=&x[i];
}
if((x[i]==32)&&a==1)
x[i]='\0';
}
for(j=0;p[j];j++)
{x[j]=p[j];
p[j]='\0';
}
}
main()
{char *a;

gets(a);
fun(a);
puts(a);
getch();
}

回答4:

#include
char * trim(char *s)
{
char *p,*r;
char *h=s;
p=r=s;
while(*r)r++;//找尾
r--;
while(*r==' ')r--;//找最后一个字 while(*p==' ')p++;//找第一个字
while(p<=r)
*s++=*p++;
*s=0;
return h;
}
void main()
{
char t[100];
printf("输入字符串:");
gets(t);
printf("结果:%s\n",trim(t));
}