字符数组

前天晚上遇见一道题,题目提示要用string函数里面的一个charAt()函数,然而wo一点没学过,根本不知道如何去应用,于是这两天都在看string函数,但是还是没有找到提示的函数的用法,幸而找到了很多关于字符数组的知识点。总结如下:
1)如果在定义字符数组时不进行初始化,则数组中元素的值是不可预料的。
2)字符串结束的标志:\0;'\0'代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可见的字符,而是一个“空操作符”,即它什么也不做。用它来做为字符串结束标志不会产生附加的操作或增加有效字符,只起到一个供辨别的作用。
3)字符数组并不要求它的最后一个字符为'\0',甚至可以不包含'\0'。在字符数组中也常常人为的加上一个'\0'。
4)结束符:'\0';输出的字符中不包括结束符'\0'。用“%s”格式符输出字符串时,printf函数中的输出项是数组名,而不是数组元素名。如果数组长度大于字符串实际长度,也只输出到遇'\0'结束。如果一个字符数组中包含一个以上'\0',遇到第一个'\0'时输出结束。可以用scanf函数输入一个字符串,例如:`scanf("%s",c);`scanf函数中的输入项c是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度。scanf函数中的输入项如果是字符数组名,不要再加地址符&,因为在c语言中数组名代表该数组的起始地址。
5)使用字符串处理函数:[1]puts函数——输出字符串的函数,一般形式为:puts(字符数组)其作用是将一个字符串(以'\0'结束的字符序列)输出到终端,用puts函数输出的字符串可以包含转义字符。[2]gets函数——输入字符串的函数,一般形式:gets(字符数组)其作用是从终端输入一个字符串到字符数组,并得到一个函数值,该函数值是字符数组的起始地址。用gets和puts函数只能输出或输入一个字符串,不能写成puts(str1,str2)或gets(str1,str2)。[3]strcat函数——strcat是STRing CATenate(字符串连接)的缩写。其作用是把两个数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。连接的两个字符串后面都有'\0',连接时将字符串1后面的'\0'取消,只在新串后面保留'\0'。[4]strcpy与strncpy函数——字符串复制函数,一般形式为:strcpy(字符数组1,字符串2)strcpy是STRingCoPY的简写,它表示“字符串复制函数”,作用是将字符串2复制到字符数组1中去。“字符串2”既可以是字符数组名,也可以是一个字符串常量,例如:`strcpy(str1,"China");`。不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。可以用strncpy函数将字符串2中的钱面n个字符复制到字符数组1中去。[5]strcmp函数——字符串比较,一般形式为:strcmp(字符串1,字符串2),strcmp时STRing CoMPare(字符串比较)的缩写。它的作用是比较字符串1和字符串2。字符串的比较的规则是:将两个字符串自左至右相比(安ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符相同,则认为两个字符串相等,若出现不同的字符,则已第一对不同的字符的比较结果为准。<1>如果字符串1=字符串2,则函数值为0;<2>如果字符串1>字符串2,则函数值为一个正整数;<3>如果字符串1<字符串2,则函数值为一个负整数。[6]strlen函数——测字符串长度的函数,一般形式为:strlen(字符数组),strlen是STRing LENgth(字符串长度)的缩写。它是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0'在内)。[7]strlwr函数——转化为小写函数,一般形式为:strlwr是STRing LoWeRcase(字符串小写)的缩写,函数的作用是将字符串中的大写字母换成小写字母。[8]strupr函数——转化为大写的函数,一般形式为:strupr(字符串),strupr时STRing UPpeRcase(字符串大写)的缩写。函数的作用是将字符串中的小写字母转化成大写字母。
6)在使用字符串处理函数时,应当在程序文件的开头用#include<string.h>把“string.h”文件包含到文本文件中。
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务