2.C_Demo_实现多位数分离

代码接口说明如下:

1、char* Split_Num(int num);

传入所需要分离的多位数,比如说123。

返回值:返回动态开辟数组的指针

数据存储:将3存入buf[0],将2存入buf[1],将1存入buf[2],' \0 '存buf[3],即:低位存低位

2、void print_str(char* str);

调试代码,用于打印字符串数据。

具体代码实现如下:

cpp 复制代码
#include <stdio.h>
#include <math.h>
#include <stdlib.h> 
 
/* 拆分一个整数,将各个位存入数组,第0位存入个位 */
/* 返回值:动态创建的数组首地址,失败返回NULL */
char* Split_Num(int num){
	
	char* Split_Num_point = NULL;
	char* point_tmp = NULL;
	int digit = 1;//传入num的位数
	int i=0;//循环控制变量 
	int num_tmp = num;
	
	/* 1.遍历,直到个位 */
	while(1){
		
		num_tmp/=10;
		if(num_tmp == 0){ //num/10=0代表已经到达了个位  
			break;
		}
		digit++;
	}
	printf("Debug:digit = %d\n",digit);
	
	/* 2.开辟数组空间 */
	//有多少位就开辟多少空间+1,多的1个空间是用来存'\0' 
	Split_Num_point = (char*)malloc(sizeof(char)*(digit+1));
	point_tmp = Split_Num_point; 
	if(Split_Num_point == NULL){
		printf("malloc err\n");
		return NULL;
	}
	printf("Debug:malloc success\n");
	
	/* 3.从最高位开始,获取每一位的值 */
	num_tmp = num;
	printf("Debug:num_tmp = %d\n",num_tmp);  
	point_tmp += digit;//指针偏移到数组末尾
	*point_tmp = '\0';
	point_tmp--;
	for(i=digit-1;i>0;i--){
		*point_tmp = num_tmp/pow(10,i);
		num_tmp = num_tmp%((int)pow(10,i));
		
		printf("Debug:i=%d,*point_tmp = %d\n",i,*point_tmp);
		printf("Debug:i=%d,num_tmp = %d\n",i,num_tmp);  
		point_tmp--;
	}
	*point_tmp = num_tmp;
	printf("Debug:i=%d,*point_tmp = %d\n",i,*point_tmp);
	
	return Split_Num_point;
}
 
void print_str(char* str){
	
	char* point = str;
	
	while(*point != '\0'){
		printf("%d",*point);
		point++;
	}
}
 
int main(){
	
	char* p;
	
	p = Split_Num(87123);
	print_str(p);
	
	return 0;
}
相关推荐
TDengine (老段)1 小时前
TDengine C/C++ 连接器进阶指南
大数据·c语言·c++·人工智能·物联网·时序数据库·tdengine
TTGGGFF2 小时前
Supertonic 部署与使用全流程保姆级指南(附已部署镜像)
开发语言·python
黎雁·泠崖2 小时前
栈与队列实战通关:3道经典OJ题深度解析
c语言·数据结构·leetcode
木木木一2 小时前
Rust学习记录--C7 Package, Crate, Module
开发语言·学习·rust
love530love2 小时前
升级到 ComfyUI Desktop v0.7.0 版本后启动日志报 KeyError: ‘tensorrt‘ 错误解决方案
开发语言·windows·python·pycharm·virtualenv·comfyui·comfyui desktop
Evand J3 小时前
【MATLAB例程】【空地协同】UAV辅助的UGV协同定位,无人机辅助地面无人车定位,带滤波,附MATLAB代码下载链接
开发语言·matlab·无人机·无人车·uav·协同定位·ugv
chao1898443 小时前
基于MATLAB实现多变量高斯过程回归(GPR)
开发语言·matlab·回归
ytttr8738 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
天远Date Lab8 小时前
Python实战:对接天远数据手机号码归属地API,实现精准用户分群与本地化运营
大数据·开发语言·python
listhi5208 小时前
基于Gabor纹理特征与K-means聚类的图像分割(Matlab实现)
开发语言·matlab