在C语言中,有string.h这个头文件,但是却没有string这个类型。
字符串通常放在常量字符串中或者字符数组中,字符串常量适用于那些对她不做修改的字符串函数。
string.h这个头文件里声明的函数原型也全是针对char数组的种种操作。
直到C++中才出现了string这个函数。
简单介绍几个常用的处理字符、字符串的函数。
strlen
size_t strlen(const char * str);
功能:计算字符串长度,不包含’\0’
返回值:返回字符串的字符数
说明:
- strlen() 函数计算的是字符串的实际长度,遇到第一个’\0’结束;
- 参数指向的字符串必须以 ’ \0 ‘结束
- 函数返回值一定是size_t ,是无符号的
- 如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\0’停止
- sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。
strcpy
将源指向的C字符串复制到目标指向的数组中,包括终止字符(并在该点停止)
char *strcpy(char *destination,const char *source);
功 能: 将参数src字符串拷贝至参数dest所指的地址
返回值: 返回参数dest的字符串起始地址
- 目标空间必须是可以被修改
- 目标空间的空间必须足够大,以确保能存放源字符串
- 源字符串必须以’\0’结束,源数据中必须有’\0’,才能停下来
- 会将源字符串中的’\0’拷贝到目标空间
strcat
将源字符串的副本附加到目标字符串。在目标字符串中的终止字符由源字符串的第一个字符覆盖,并且在由目标字符串中这两个字符连接形成的新字符串的末尾包含一个终止字符。
char* strcat(char *destination,const char *source);
- 两个字符串必须以’\0’结束
- 目标空间的空间必须足够大,以确保能容纳下源字符串
- 目标空间必须可修改
- 自己无法给自己追加
strcmp
字符串比较,对应字符大小
int strcmp(const char *str1,const char *str2);
标准规定:
- 第一个字符串大于第二个字符串,则返回大于0的数字
- 第一个字符串等于第二个字符串,则返回0
- 第一个字符串小于第二个字符串,则返回小于0的数字
- 判断两个字符串大小1)ASII码 2)长度
- 区分大小写比较的,如果希望不区分大小写进行字符串比较,可以使用stricmp函数