c语言去除字符串中全部的空字符

//去除字符串中全部的空字符
void delAllSpace(char* soucre) {

	if (soucre == NULL) {
		printf("delAllSpace: 传参错误");
		return;
	}

	//strlen() 计算的时数据的真实长度 ,不包含'\0'

	char* pev = soucre; //字符串前指针
	//strlen 计算的总数, str下标从0开始,-1后正好===总数
	char* end = soucre + (strlen(soucre) - 1); //字符串的从后向前找空字符的指针
	char Buf[100] = { 0 }; //最后找到的 有效字符串

	//isspace 为空返回非0

	/* 
	为空则指针向后移动一位 
	pev==end 说明指针已经到最后了
	只有前面有空格或者没有有效字符
	*/
	int pv = 0;
	if (strlen(soucre) > 0) {
		while (1) {
			if (isspace(*pev) == 0 && pev <= end) {
				//if (pv != 0) { printf("字符[%c]前,无效字符数 = %d\n", *pev, pv); }
				pv = 0;
				//找到有效字符就向buf中拼接一个
				strncat(Buf, pev, 1);
			}
			else {
				pv++; //累计空字符
			
				/*为空字符并且是字符串de最后一个,将打印有效字符往后的无效字符个数*/
				if (isspace(*pev) && pev == end) {
					if (strlen(Buf) == 0) {
						printf("空串\n");
					}/*
					else {
						printf("字符[%c]后,无效字符数 = %d\n", Buf[strlen(Buf) - 1], pv);
					}*/

				}


			}
			//指针到最后则退出循环
			if (pev == end) { break; }
			//指针后移
			pev++;
		};

		if (strlen(Buf) > 0) {
			printf("Buf = %s\n", Buf);
		}
	}
	else {
		printf("此串是真空串\n");
	}



}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值