C语言程序 去首尾空格怎么编

如题所述

可以分别用单循环实现:

#include<stdio.h>

void work(char s[])        //删除首尾空格

{int i,j;

 for(i=0;s[i]==' ';i++);        //找到开头第一个非空格

 for(j=0;s[i];)s[j++]=s[i++];        //删除开头空格

 for(i--;s[i]==' ';i--)s[i]='\0';    //删除末尾空格

}

void main()

{

 char s[100]="      Hello! How are you?       ";

 work(s);

 printf("s=\"%s\"\n",s);        //输出的串中已经没有首尾空格了

system("pause");

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
#include <stdio.h>
#include <string.h>
void func(char *str)
{
     int index=0,i=0;
     
     //去除串首空格 
     while(str[index]==' ') index++;
     for(i=0; i<strlen(str)-index; i++) str[i] = str[i+index]; 
     str[i]='\0';
     
     //去除串尾空格 
     index= strlen(str);
     while(index>0 && str[index-1]==' ')  index--;
     str[index]='\0';
}
int main()
{    
     char str[100];
     gets(str);
     
     func(str);
     printf("%d\n%s\n",strlen(str),str);  
     return 0;
}

测试结果:

本回答被提问者和网友采纳
相似回答