简单介绍
C语言里关于字符数组的函数定义的头文件,常用函数有 strlen(求字符串长度),strcmp(比较两个字符串是否一样),strcpy(字符串拷贝操作),strcat(字符串连接操作)等等,更详细的可以到include文件夹里查看该文件
strlen(求字符串长度)
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。简单的说其作用就是返回一个对象或者类型所占的内存字节数。
例如:
代码里看 sizeof(a),数组a占7个字节,此时i应该等于7, strlen(a)碰到第一个'\0'为止,所以j=2#include<stdio.h> #include<string.h> int main() { char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("i=%d j=%d ",i,j); return 0; }
strcmp(比较两个字符串是否一样)
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
有三种情况
#include<stdio.h> #include<string.h> int main() { char str1[10]={"12345"},str2[10]={"123456"}; if(strcmp(str1,str2)) { printf("返回值为真!"); } else { printf("返回值为假!"); } return 0; }
情况一 : str1=str2时
情况二 :str1<str2时
情况三 :str1>str2时
strcpy(字符串拷贝操作)
strcpy,即string copy(字符串复制)的缩写。strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。
输出结果为,所以看出str2覆盖了str1中的字符串#include<stdio.h> #include<string.h> int main() { char str1[20]={"hello"},str2[10]={"world"}; printf("%s\n",strcpy(str1,str2)); return 0; }
![]()
strcat(字符串连接操作)
strcat(str1,str2)的意思是将str2的字符串追加到str1字符串结尾,
目前看来st1字符串长度不够也不会造成数据丢失
#include<stdio.h> #include<string.h> int main() { char str1[10]={"hello"},str2[10]={"world"}; printf("%s\n",strcat(str1,str2)); return 0; }