一.题目描述
输入一个数字,把他转为字符串
比如:输入数字:12345
输出:12345(这里的12345是字符串12345)
二.思路分析
比如给定一个数字12345,先把它转为字符54321(“54321”),(这样更简单,如果直接转为字符12345,还要再求这个数字是几位数,比较麻烦),然后再将字符串反转即可。
三.完整代码
#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函数
int main()
{
int n;
char buf[20] = "";
printf("请输入一个数字 :");
scanf("%d", &n);
sprintf(buf, "%d", n);
printf("%s", buf);
return 0;
}
- 运行结果
创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。