数据结构之栈的应用-将任意十进制整数转换为任意进制数(非常详细C语言版)

这篇博客详细介绍了如何使用C语言将任意十进制整数转换为任意进制数,包括注意事项、思路分析和代码实现。在转换过程中,特别提到了16进制转换时字母的处理,并给出了解决字符串长度问题的方法。
摘要由CSDN通过智能技术生成

----------------------✨🎉🎈==!!!热烈欢迎各位大佬!!!==🎈🎉✨---------------------

🍹作者: BooleanChar12

博客主页BooleanChar12的博客

💘很喜欢的一句话Because we all stand on the shoulders of giants.

🥂如有bug疑惑欢迎大家与我🤺

😍觉得博主文章写的不错的话,希望大家三连(🎉关注,🎉点赞,🎉评论),多多支持一下!!

--------------------------------------------------------------------------🍻==专栏回顾==🍻-------------------------------------------------------------------------------

Java(从入门到放弃) 🍉数据结构(从放弃到入门) 🍒Android开发(从入门到入土)
🍇计算机组成原理(从1到0) 🍑计算机网络(从上网到退网) 🥝操作系统(从0到0.1)
🍎C语言练习题 🏆Leetcode(狂刷笔记) 🌺微信小程序开发日记

1.注意事项🔊:

注:经测试,发现字符串长度为4,5,6位无法正确识别,其他均可,原因尚未找出…

原因找到:在出栈给output[]赋值后,没有手动给output[]赋值’\0’

解决办法:在47~48行之间添加一句:output[j] = '\0'; 即可

2.思路分析💡:

  1. 获得用户要转换的数

    1. scanf函数接收用户输入
  2. 获得用户要将此数转换为几进制的数

    1. scanf函数接收用户输入
  3. 开始转换(调用进制转换函数)

    1. 初始化栈(即创建一个空栈)
    2. while循环将每次取模的结果压入栈中
    3. 遍历栈中元素

    思考:如何考虑16进制遍历输出时有字母的特殊性?

    在C语言中,由于ASCII码表的存在,字符本质也是数字,于是我们可以利用这一点,在入栈和输出上进行控制,将16进制的字母A,B,C,D,E,F入栈和输出,具体操作看代码实现。

  4. 结束程序

3.代码实现💎:

# include <stdio.h>
# include <malloc.h>
//定义栈结构体
struct Stack {
   
	int * top;//栈顶指针
	int * base;//栈底指针
	int size;//栈大小
};

//初始化栈
void initStack(struct 
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BooleanChar12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值