十进制转ASCII

函数①将数组中的十进制转为ASICC字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
函数名称:将数组中的十进制转为ASICC字符
时 间:2022.01.03
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int a[] = { 72,101,108,108,111,44,119,111,114,108,100,33};//待转换十进制
int size = sizeof(a)/sizeof(a[0]);//求数组大小
char *s = malloc(size);//分配内存
char *str = s;
memset(s,0,size);//将内存中的内容全部设置0
for (int i = 0; i < size; i++)
{
*s = a[i];//赋值
s++;//内存地址增加
}
printf("%s\n",str);//输出结果
return 0;
}

运行结果:

1
Hello,world!

穷源竟委:

[^穷源竟委]:意思是比喻弄清事物的发展过程。 [1] 出自《礼记·学记》。

  1. char *s

    定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大

当char *s = “hello”;后,不能使用s[0]=’a’;语句进行赋值。这是将提示内存不能为”written”

  1. char s[]=”hello”

    完全可以使用s[0]=’a’;进行赋值,这是常规的数组操作。

  2. char s[] = “hello”; char *p = s;

    也可以使用p[0] = ‘a’;因为这是p ==s,都是指向数组的指针。

  3. char *s = (char *)malloc(n);

    其中n为要开辟空间的大小,char s[n];定义的也是一个指向数组的指针,便可进行数组的下标操作。

函数②将字符串中的十六进制数转为十进制整数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
函数名称:将字符串中的十六进制数转为十进制整数
时 间:2022.01.03
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[30] = "0x13461B7";//定义字符串
char *ptr;//定义指针
long ret;
ret = strtol(str, &ptr, 16);//参数16代表的是待转换的为十六进制
printf("十进制数是 %ld\n", ret);
return(0);
}

运行结果:

1
十进制数是 20210103

附录

image-20220105160558898