sprintf函数在字符串处理的妙用

//转化字符串为原来字符+该字符连续出现的次数
void TransChar(char* str,int n,char* res)
{
	int res_len=0;//结果字符串现有长度
	int count =1;//当前字符出现的次数
	for (int i=0;i<n;i++)
	{
		if (str[i+1]==str[i])
		{
             count++;
		}
		else
		{
			sprintf(res+res_len,"%c%d",str[i],count);
            res_len+=2;
			count =1;
		}
	}
}
//替换字符串里面的空格为%20,保存在res
void repalcebank(char* str,int n,char* res)
{   
	int res_len=0;//记录存储在res中字符长度
     for (int i=0;i<=n;i++)
     {
         if (str[i]==' ')
         {   
			 char sub[]="%20";
             sprintf(res+res_len,"%s",sub);//把%20加在res字符串尾端
			 res_len+=3;
         }
		 else
		 {
             res[res_len++]=str[i];
		 }
     }
    res[res_len]='\0';//添加结束符
}
int main()
{
    char a[]="we are happy";
	char res[20]={'\0'};
    repalcebank(a,12,res);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值