Bootstrap

(十)字符数组和ASCII码


转载完以前的帖子后,我来发新帖子了!

ASCII码

我们看到的字符,都是由ASCII码创造出来的,今天我们来了解一下

ASCII码表

在这里插入图片描述

C++ ASCII转换

int(C) //返回C对应的ASCII码
char(D) //返回D对应的字符

字符数组

上上期,我们学习了数组。这次,我们要认识什么是字符数组。由字符构成的数组,可以说就是字符串,只不过是规定了长度的。后期,我们会学真正意义上的字符串。使用字符数组前,请加入以下头文件之一

#include <cstring> //c++使用
#include <string.h> //c语言使用

定义

char s[Siz] = "Str"; //定义大小为Siz的字符数组,并且设置为Str
char s[] = "Str"; //定义一个字符数组s,根据Str的内容长度调整大小,且赋值为这个字符串
char s[Siz]; //定义一个空的字符数组s,大小为Siz

注意,尽量把数组的大小再加上一,因为字符串的后面都会自动补充'\0',它也是字符。且字符数组的索引一样从0开始排

索引 0 1 2 3 4 5 6 7 8 9 10 11
字符 H e l l o W o r l d !  \0

'\0'是字符串截止符,它也是一个字符,且出现在字符串的最后,在它后面的字符一律不识别。在终端中,按Ctrl+Z可以代表输入截止符^Z,给了stdin后就算有cin也不再输入数据,可以使用cin.eof()侦测输入是否截止输入

输入&输出

cin >> s; //输入字符串s,遇到空格、Tab和换行符就结束
cin.getline(s, Siz, 'Chr'); //Siz为s的长度,输入s,遇到Chr就结束(不填默认为换行符)
scanf("%s", s); //输入字符数组s,同样遇到空格、Tab和换行符就结束
gets(s); //输入字符数组s,只有遇到换行符才结束
fgets(s, Siz, stdin); //Siz为字符数组s的长度,输入字符数组s,遇到换行符结束
getchar(); //输入一个字符,此函数返回输入的那个字符的ASCII码
putchar('Chr'); //输出一个字符Chr

scanf()输入字符数组时名字前不加&!!!
gets()函数被OJ淘汰了,请使用fgets()代替

字符处理

toupper('Chr'); //将字符Chr变为大写字母,不成功返回它的ASCII码
tolower('Chr'); //将字符Chr变为小写字母,不成功返回他的ASCII码
isdigit('Chr') //判断Chr是否是数字
isalpha('Chr') //判断Chr是否是字母
isupper('Chr') //判断Chr是否是大写字母
islower('Chr') //判断Chr是否是小写字母
isalnum('Chr') //判断Chr是否是数字或字母

字符串函数

strlen(s) //返回s的字符串长度
strcpy(a, b); //将a的值设为b的值
strcat(a, b); //拼接字符串a和字符串b
strcmp(a, b) /*比较两个字符串,如果两个字符串一致,返回0;如果a的长度比b的长度长遍历1,
如果a的长度比b短返回-1。如果字符串不一样,开始遍历每个字符的ASCII,如果a的ASCII比b的ASCII大,
返回1,反之返回-1,仍相等继续遍历*/

请添加图片描述 制作不易,点颗心心

;