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;
}
相关推荐
superman超哥几秒前
仓颉语言中网络套接字封装的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
wanghowie2 分钟前
01.01 Java基础篇|语言基础与开发环境速成
java·开发语言
白露与泡影4 分钟前
2026年Java面试题目收集整理归纳(持续更新)
java·开发语言·面试
啊阿狸不会拉杆9 分钟前
《数字图像处理》第 5 章-图像复原与重建
图像处理·人工智能·算法·matlab·数字图像处理
断剑zou天涯19 分钟前
【算法笔记】资源限制类题目的解题套路
笔记·算法·哈希算法
辞旧 lekkk24 分钟前
【c++】c++11(上)
开发语言·c++·学习·萌新
程序员阿鹏25 分钟前
SpringBoot自动装配原理
java·开发语言·spring boot·后端·spring·tomcat·maven
彭世瑜28 分钟前
C/C++:libfort用于在终端输出表格
c语言·开发语言·c++
RAY_010429 分钟前
Python—数据可视化pyecharts
开发语言·python
徐同保30 分钟前
n8n+GPT-4o一次解析多张图片
开发语言·前端·javascript