📅  最后修改于: 2023-12-03 15:38:46.301000             🧑  作者: Mango
在程序开发过程中,我们可能会遇到需要将一个数字转换为字符数组的情况,比如需要将一个数字转换为字符串进行输出或者存储。在本文中,我们将介绍如何将给定的数字转换为字符数组。
利用sprintf函数可以将数字转换为字符串,我们可以将转换后的字符串逐个赋值到一个字符数组中,从而实现将数字转换为字符数组的操作。
#include <stdio.h>
#include <string.h>
int main() {
int num = 12345;
char str[10];
sprintf(str, "%d", num);
printf("Convert number %d to string: %s\n", num, str);
return 0;
}
int num = 12345;
char str[10];
sprintf(str, "%d", num);
itoa函数可以将int类型的数字转换为字符串,需要注意的是,itoa函数在标准C中并不是一个标准函数,其可移植性存在一定问题。
#include <stdio.h>
#include <stdlib.h>
int main() {
int num = 12345;
char str[10];
itoa(num, str, 10);
printf("Convert number %d to string: %s\n", num, str);
return 0;
}
int num = 12345;
char str[10];
itoa(num, str, 10);
在实际开发中,我们也可以手动将数字转换为字符数组,具体过程如下:
#include <stdio.h>
void int_to_str(int num, char *str) {
int i = 0, j, k, is_negative = 0;
if (num < 0) {
is_negative = 1;
num = -num;
}
while (num) {
str[i++] = num % 10 + '0';
num /= 10;
}
if (i == 0) {
str[i++] = '0';
}
if (is_negative) {
str[i++] = '-';
}
str[i] = '\0';
for (j = 0, k = i - 1; j < k; j++, k--) {
str[j] ^= str[k];
str[k] ^= str[j];
str[j] ^= str[k];
}
}
int main() {
int num = -12345;
char str[10];
int_to_str(num, str);
printf("Convert number %d to string: %s\n", num, str);
return 0;
}
void int_to_str(int num, char *str) {
int i = 0, j, k, is_negative = 0;
//...
}
int num = -12345;
char str[10];
int_to_str(num, str);