目录
一、处理字符的库函数
int a[100],b[20];
1. strcat 字符串连接(拼接)库函数
strcat(a,b);
把b中的字符串链接到a后面,并去掉a中最后面的\0;
函数的返回值是a的首地址。a的大小并不会自动扩充,所以要保证a能够容纳的下两个字符串。
2. strcpy 字符串复制库函数
strcpy(a,b);
把b中的字符串复制到a中,\0也一同复制。
3. strcmp 字符串比较函数
strcat(a,b);
按照ASCII码顺序比较两个数组中的字符串,并返回比较结果的统计
字符串a=b,返回值为0,
字符串a>b,返回值为一个正数,
字符串a<b,返回值为一个负数,
注意:当两个字符串进行比较时,如果不相同,以第一个不同的字符比较的结果作为整个比较结果,作为返回值返回。
4. strlen
统计字符串的实际长度,即不含字符串结束标志,\0。
strlen(a);
有一篇博客中应该讲过统计长度,不仅限于字符串。sizeof。所以可以在出一篇博客,讲一下这两个的区别。strlen是不是只能统计字符串,它是识别出是字符串的,靠\0。如果人为的把数据后面放个\0,会不会就会认成字符串。\0和0有什么区别?
5. strwr
将字符串转换为小写字母
6. strupr
将字符串转换为大写字母
二、深度解析
1.strcat (catenate连接拼接)
函数原型:
extern strcat(char* dest,const char* src);
把src指向的字符串(包括“\0”)
复制到dest所指向的字符串后面,(删除原来末尾的“\0”)
*dest要足够长,能够容纳的下src的内容。
*src原有的内容不变,使用const修饰,避免使用过程中被修改;
返回指向dest的指针;
src与dest所指向的内存区域不可重叠。
src与dest字符串必须以“\0”结束
2.strcpy 将一个字符串复制到另一块内存空间的函数
“\0”是停止拷贝的条件,并且会一起复制到目标内存。
函数原型:
extern strcpy(char* dest,const char* src);
dest是目标内存块(字符串)的首地址;
src是被复制内存块的首地址,使用const修饰,避免使用过程中被修改;
返回指向dest的指针(首地址);
源字符串必须以“\0”结束,“\0”是停止拷贝的条件,不遇到“\0”不会停止拷贝,会导致越界访问。
dest要足够大,确保能够放的下源字符串,否则会溢出
目标dest必须是可修改的,不能是常量。
dest的空间长度足够,其中已有有字符串,且比src中的字符串长,此时,前面部分会拷贝为src的内容,后面部分依然会保留。
如果打印输出的话,只会显示src的内容。