1、ascii码操作:+0x30
由于char类型的保存形式是ascii码数值,所以可以加上数字0的ascii码48,即0x30,存储数字对应的字符ascii码。
char str1 = 'c'; // 随便初始化一下
str1 = 0x30 + 5;
printf("str1: %c\n", str1);
printf("str1: %d\n", str1);
输出分别是5和53。
此处扩展一句,由于存储字符的本质是ascii码,所以使用uint8_t或其他类型的变量/数组来存储字符都是可行的。本人项目中就是使用u8来存储的,好处在于该数据结构一定会是8位的,也确定了其无符号的特性。
2、使用itoa(),但它不是标准库函数
这是cstdlib非标准库的函数,顾名思义,integer to ascii,数字转字符。
该函数用法为 char *itoa (int value, char *str, int base); value是原数字,str是要保存进的字符串指针,base是指定的数字进制。一个例子是:
itoa(123, string, 10);
printf("string=%s\n", string);
输出则为123。
3、sprintf()函数
这是stdio标准库函数,该函数能够根据指定的需求,格式化内容,存储至指针指向的字符串。用法见:
https://www.runoob.com/cprogramming/c-function-sprintf.html
该网站中的例子为:
sprintf(str, "Pi 的值 = %f", M_PI);
puts(str);
输出结果是:Pi 的值 = 3.141593