转载完以前的帖子后,我来发新帖子了!
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,仍相等继续遍历*/
制作不易,点颗心心