将一个字符串中的'\t'换成四个空格

//实现将一个字符串中的'\t'换成四个空格, '\t'个数不定。 
#include "stdio.h"
#define TOTAL_LEN 1024
//是'\t'返回1
int IsCharTab(char chData)
{ 
	return (('\t' == chData) ? 1 : 0);
}
//当str = '/'并且 str+1 = 't',即 "/t"
int IsStrTab(const char *pchData)
{
	 return ( ('\\'==*pchData && 't'==*(pchData+1)) ? 1 : 0);
}
void Fill4Space(char *pchData)
{ 
	int i; 
	for (i= 0; i< 4; i++)
 	{
		 *pchData++ = ' '; 
	}
}
int RepalceCh(const char *pchSrc, char *pchDst)
 { 
	if ((NULL == pchSrc) || (NULL == pchDst)) 
	{
		printf("pointer is NULL, error !/n");
	 	return 0;
 	} 
	while (*pchSrc) 
	{ 
		//是/t,直接将拷贝4个*到新内存去中 
		if (IsCharTab(*pchSrc)) 
		{
			Fill4Space(pchDst); 
			pchSrc++;
			pchDst += 4; 	//添加了 4空格,指针向后移动 pointer+4 
			}
			 else
			 { 
				if (IsStrTab(pchSrc)) 
	   	{	
			Fill4Star(pchDst); 
			pchSrc += 2; // 遇到"\\t", 第一个\为转意第二个\,所以pointer+2 
					pchDst += 4; // 添加 4 ' ', 移动 pointer+4 
				} else 
				{ 
					*pchDst++ = *pchSrc++; // 其他正常情况 
		} 
	    } 
	} 
return 1;
}
int main(void)
{ 
	char *pStr = "a\taaf\taa\taa\taaa\tjaaaa\\taaaa";
 	char achBuf[TOTAL_LEN + 1] = {0}; 
	char *pDst = achBuf; 
	printf("原字符串: %s\n", pStr); 
	RepalceCh(pStr, achBuf); 
	printf("新字符串: %s\n", pDst); 
	return 0;
}

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值