字符数组与字符串
字符数组:
字符数组就是char类型的字符数组,每一个元素存储一个字符,用于存储字符型数据。
字符串:
"hello world"这就是一个字符串。
下面是用这个字符串来初始化一个字符数组。
char ar[12] = { "hello world" };
这个字符串只有十一个字符(包括空格),它的大小应该是11个字节啊!那为什么要定义它有十二个元素呢?
因为字符数组的字符串后有一个结束符"\0",这个"\0"也要占一个字符的大小。
字符串函数
为了方便的处理字符串,C语言的库函数中提供了很多字符串处理函数。
strlen()字符串长度函数
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
sizeof:
strlen:
strlen函数与sizeof关键字功能看起来相似,都是用来计算大小的。
但是它们也有不同之处。
这里是引用(来自菜鸟教程)
strcpy()字符串复制函数函数
strcpy,即string copy(字符串复制)的缩写。
strcpy是C++语言的一个标准函数 [1] ,strcpy把含有’\0’结束符的字符串复制到另一个地址空间,返回值的类型为char*。
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
strcat()字符串连接函数
将两个char类型连接。
C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
strcmp()字符串比较函数
strcmp函数是string compare(字符串比较)的缩写。
用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2)。
C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
使用如图:
字符串函数还有很多很多,可以去cppreference这个网站查看。