C语言中的字符替换与截取

本文介绍了如何使用C语言实现字符串中的特殊字符替换为0,然后进行数字的规范化处理,包括去除前导零和判断浮点数后多余的零。通过提供具体的代码示例和下载链接,详细展示了算法流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目为:首先将字符串中的*替换为0,然后将不规范化的数字规范化。

如:1.*,02.3*0,12*.210,012.5*,4*560.0,45*0

第一步替换:1.0,02.300,120.210,012.50,40560.0,4500

第二步规范化:1,2.3,120.21,12.5,40560,4500

程序代码(基于C语言)如下:

替换代码为:

void change(char *string)    //string为char数组
{
	int len = strlen(string);
	for (int i=0; i<len; i++)
	{
		if (string[i] == '*') 
		{
			string[i] = '0';
		}
	}
}

数字的规范化代码如下:

void replace(char *string)
{
	char *temp;
	bool isfloat = false;
	int len = strlen(string);
	len = len -1;
	//去掉前面多余的零
	for(int i = 0;i <len; i++)
	{
		if(string[i] == '0')
		{
			len =len -1;
		}
		else
		{
			break;
		}
	}
	int gap  = strlen(string) - len -1;    //多减一是要去掉那个"\n",gap即为0的个数
	printf("----------%d %d\n",strlen(string)-1,gap);
	for(int i =0;i<len;i++)
	{
		 string[i] = string[i +gap];
	}
	string[len] = '\0';
	//判断是否是folat,如果是则要去掉后面的0
	for(int i =0 ;i <len ;i++)
	{
		if(string[i] == '.')          //遇到了.就停止扫描和去零操作
		{
			isfloat = true;
		}
	}
	if(isfloat)
	{
		while((string[len-1] == '0')||(string[len-1] == '.'))
		{
			len = len -1;
			if(string[len-1] == '.')
			{
				len = len -1;
				break;
			}
		}
		string[len] = '\0';
	}
	
	
}

程序源码下载地址为:http://download.youkuaiyun.com/detail/wangyingjun321/5541205


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值