数组的学习告一段落,今天接触到之前提及到的字符的一种存在:字符串。
在之前的学习中,‘ ’内代表单一字符,在“ ”内代表字符串;其出现在数组中,标准格式为:
a【 】={“ ”} 【】内表示字符串的长度(下标从0开始),{ “ ”}内才是字符串。其中每个字符串在结束的位置自动默认添加\0表示结束位,无论写未写,占据一个字节。
在定义字符串的格式时定义为%,若在输入时录入\0则停止录入在\0之后的量都不录入。而在定义溢出时系统报错不运行。
控制字符在“ ”内同样同样生效,例如\\显示出来为\,若\0后还有数值则有可能会三位组成对应的8进制ASCII值来对应产生输出。
在一个数组内只能存在一个字符串,在输入字符串时&可以省略,在字符串进行录入时输入的变量先寄存在缓冲区然后进入内存再返回缓冲区最后在进行输出。
在字符串里\0表示空格但不等于空格。在字符串未满时补位\0(输出空格),不能出现越界,在串中是空的时候无论下标是多少都是空。
getchar(),获取输入字符;putchar()函数,输出字符;
gets(),获取字符串;puts(),输出字符串且进行自动换行。
getch(),存入字符但不回显(可用于密码的输入);
getche(),输入什么录入什么并进行回显。
这两个函数在c++环境下,应预处理包含头文件conio.h。但在c环境下,可以在stdio.h头文件中直接使用。
memcmp(s1,s2.4)表示(字符串s1,字符串s2,要比较的长度x),若s1较大,返回值为1,相同返回0,s2大返回-1。逐个比较,出现结果直接返回并结束比较;比较次数为括号中第三位的数字x;(不计较长度)
strcmp(s1,s2)表示(字符串s1,字符串s2),若s1较大,返回值为1,相同返回0,s2大返回-1。逐个比较,出现结果直接返回并结束比较;比较次数为整体比较,直到字符串结束;(不计较长度)
memcpy(s1,s2,4)表示(字符串s1,字符串s2,项数),用于把s2的前4项复制到s1
strcpy(s1,s2)表示(字符串s1,字符串s2),用于把s2复制到s1,并忽略项数;
strcat(s1,s2)表示(字符串s1,字符串s2),用于把字符串s2接到字符串s1后;
strlen(s)表示字符串的长度。