字符数组赋值,以及让字符数组储存可现实的数字

1、定义的时候直接赋值:

char arr[10] = {"kitty"};

这种写法也可以直接省略花括号,直接写成:

char arr[10] = "kitty";

2、初始化列表,把各个字符依次赋给数组中的元素:

char arr[10] = {'k','i','t','t','y'}

这种写法是不可以省略花括号的。

3、利用字符串处理函数 
strcpy( str1, str2)可以将字符串2的内容复制到字符串1中。

char arr[10];
strcpy(arr, "kitty");

利用字符串处理函数对字符串进行赋值,要注意(1)字符数组1必须定义的足够大,以便容纳字符串2;(2)需要包含头文件string.h

对一维数组进行赋值时需要注意的易错情况: 
情形一:

char arr[10];
arr[10] = "kitty";

数组元素的下标是从序号0开始,arr[10]最大的下标值为9,况且arr[10]指的是下标为10的元素,一个字符是无法容纳一个字符串的。

情形二:

char arr[10];
arr = "kitty";

arr虽然是个指针,但是它已经指向了堆栈中的10个字符空间,无法指向”kitty“这个常量了。

4、如果在Lcd上要显示一个字符数组,这个字符数组的内容是一个数字。比如说

        int a =987;
        unsigned char str[10];
        -------???------        //把int的数字赋值到str中,然后再接下来的程序中直接调用指针str进行显示,这步怎么操作呢?
        LcdShow(*str)
	str[0] = (dat/100)+'0';        主要想把a的数字分别存储到str中并显示,就要存储10进制的
	str[1] = (dat/10%10)+'0';       并且要转换成 ASCII中对应的数值!!!所以要+'0'
	str[2] = (dat%10)+'0';
	str[3] = '\0';
这里只是举个例子,只是显示三位的,最后str[3]=‘\0’是截止位,用来给LcdShow 函数判断结束用的。


猜你喜欢

转载自blog.csdn.net/diiiiiiiiiiiiiiii/article/details/80898286