C语言--不使用库函数,把一个数字转为字符串【详细解释】


一.题目描述

输入一个数字,把他转为字符串

比如:输入数字:12345

输出:12345(这里的12345是字符串12345

二.思路分析

比如给定一个数字12345,先把它转为字符54321("54321"),(这样更简单,如果直接转为字符12345,还要再求这个数字是几位数,比较麻烦),然后再将字符串反转即可。


三.完整代码

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>  //预编译
#include<stdlib.h>
#include<string.h>
void Reserve(char* str)
{
	//把字符串反转    "54321"->"12345"
	int low = 0;//左下标
	int high = strlen(str) - 1;
	while (low < high)
	{
		char tmp;
		tmp = str[high];
		str[high] = str[low];
		str[low] = tmp;
		high--;
		low++;
	}
}
void Myitoa(char* str, int n)
{
	int i = 0;
	//把数字的个位存放到字符串当中 12345-->"54321" 此时的字符串末尾没有'\0'
	for (i = 0; n != 0; i++)
	{
		str[i] = n % 10 + '0';
		n /= 10;
	}
	str[i] = '\0';//添加字符串结尾标记
	Reserve(str);
}
int main()
{
	int n = 12345;
	char str[20] = "";
	Myitoa(&str[0], n);
	printf("转换为字符串是%s", str);
	return	0;
}

四.运行结果


五.补充

如果使用库函数,则使用sprintf函数

cpp 复制代码
int main()
{
	int n;
	char buf[20] = "";
	printf("请输入一个数字 :");
	scanf("%d", &n);
	sprintf(buf, "%d", n);
	printf("%s", buf);
	return 0;
}
  • 运行结果

创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。

相关推荐
人邮异步社区9 小时前
怎么把C语言学到精通?
c语言·开发语言
xiaobobo333014 小时前
C语言中宏定义宏名和宏值之间的关系
c语言·宏定义·语义型
a44931536218 小时前
MacBook USB-C不充电故障诊断:从PD握手到主板供电链路
c语言·开发语言·macos·电脑
a44931536219 小时前
iPhone 充电故障的全链路诊断——从 Lightning/USB-C 接口到 Tristar 充电 IC
c语言·macos·ios·电脑·硬件架构·iphone
qq_4480111619 小时前
C语言中的getchar()
c语言·开发语言
天空'之城19 小时前
C 语言工业级通用组件手写 15:累加和校验
c语言·嵌入式开发·工业级组件·累加和校验
碎光拾影1 天前
i.MX6ULL时钟系统配置指南
c语言·arm开发·嵌入式硬件
GeekArch1 天前
第28讲:避坑——AI堆栈分配错误、栈溢出BUG
c语言·人工智能·stm32·mcu·学习·bug
wuyk5552 天前
59.嵌入式C语言高级宏定义实战:多行宏、字符串化与符号拼接
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·51单片机
无相求码2 天前
C程序的内存到底怎么分的?栈、堆、全局区一张图讲清楚
c语言