<C语言>消除字符串中的空格--附:消除fgets()函数吃进去的回车符

作者:wsg

时间:2017年8月21日

/* 
去掉字符串中的空格
版本一
*/
#include <stdio.h>
#include <string.h>

void strip(char *s)
{
	int i,j;
	for(i=0; s[i]; i++)  //i<strlen(s)
	{
		if(s[i] == ' ')
		{
			for(j=i; s[j]; j++) //j<strlen(s)
			{
				s[j] = s[j+1];
			}
			i--;
		}
	}
}

int main(void)
{
	char arr[200];
	bzero(arr, 200);
	printf("input:");
	fgets(arr, 200, stdin);
	strip(arr);
	printf("%s", arr); //%s后面没有\n换行符,但是程序运行的时候会换行,说明fgets吃掉了回车符
}


//消除字符串中的空格--消除fgets函数吃掉的回车
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
	char arr[200];  //定义一个200个元素的char型数组
	
	bzero(arr, 200);  //将arr的前200个字节置零	
	//从键盘输入字符串,不能用scanf,因为scanf输入的字符串不能有空格
	printf("输入:");
	fgets(arr, 200, stdin);   //缺点:fgets会吃掉回车,将回车算作一个字符
	//若用gets函数,不会吃进去回车,但是编译时会有警告
	
	char new[200];
	bzero(new, 200);
	
	strncpy(new, arr, strlen(arr)-1);  //消除吃掉的回车:将长度减1,即把末尾的回车字符去掉了
	
	int s = strlen(new);
	int i,j;  
	for(i=0; i<s; i++)  
	{
		if(new[i] == ' '
		)  //如果字符串中有空格符,就把后面的字符一次往前移一位
		{
			for(j=i; j<s; j++) 
			{
				new[j] = new[j+1];
			}
			i--;
		}
	}
	printf("去掉空格后:%s", new);
	
	return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值