字符串:字符是构造源程序的基本单位。每个程序都有一系列的字符组成。但这些字符被有意义的组合在一起的时候,就被计算机解释成为能够完成某个人物的一串指令。当一对字符被一对单引号引起来的时候,他就被称为字符常量。
字符串是被作为一个整体对待的一串字符。组成字符串的字符可以是字母、数字或者+、-、*、/、%之类的各种特殊字符。
字符串是通过字符数组来实现的,所有表示字符串的字符数组的最后一个元素都是空字符‘\0’。对一个字符串的访问时通过指向字符串的第一个字符的指针来实现的,字符串的值就是他第一个字符的地址,因此在C语言中,字符串就是指针。指向字符串首个字符的指针。
一个字符数组或一个char*类型的变量可以在定义时用一个字符串来初始化。例如,下面的每个变量定义为:
Char color[]=”blue”;
Const char* color=”blue”;
都是用字符串blue来初始化的,第一个定义创建了一个字符数组color。有五个元素,分别是‘b’,‘l’,‘u’,‘e’,‘\0’.第二个定义了一个指针变量color,它指向储存在只能读储存区某个地方的字符串”blue”。
长度:
- 使用siseof。在使用sizeof函数时,会将\0也计算到其中;
- 使用strlen。但是strlen函数不包括\0。
特点:
Strlen函数
头文件string.h
函数strlen接受一个字符串作为实参,然后返回这个字符串中字符的个数,即字符串长度,但是字符串结束符不包括在字符串长度中。
#include<stdio.h>
#include<string.h>
int main()
{
const char* arr="asdfg";
printf("字符串arr的长度为:%d",strlen(arr));
}
Strcat函数
头文件string.h
函数strcat是将第二个实参拼接到第一个实参的末尾,第二个实参的第一个字符替换了第一个实参的结束字符‘\0’。但是必须确保第一个字符串的数组足够大,一边存放拼接过来的第二个字符串及其结束符。
#include<stdio.h>
#include<string.h>
int main()
{
char arr[2000]="asdfg";
char brr[]="zxcvb";
printf(" 拼接之后为:%s\n",strcat(arr,brr));
return 0;
}
strcpy函数
头文件string.h
使用strcpy将第一个数组中的字符串复制到第二个数组中
#include<stdio.h>
#include<string.h>
#define SIZE 20
int main()
{
char arr[]="huahai";
char brr[SIZE];
printf(" 复制之后为:%s\n",strcpy(brr,arr));
return 0;
}
Strcmp函数
比较a,b两个字符串的,strcmp函数是根据ASCII码来比较两个字符串的。用a字符串的第一个字符减去b字符串的第一个字符,若第一个字符相等,则对比第二个字符,若a,b完全相等,则返回0;若a大于b,则返回大于0的数值;若a小于b,同样返回小于0的数值。
#include<stdio.h>
#include<string.h>
#define SIZE 20
int main()
{
char* arr="huahai";
char* brr="huahai";
printf(" 比较之后结果为:%d\n",strcmp(arr,brr));
return 0;
}