C语言 字符数组和字符串
来源:互联网 发布:电信4g网络模式 编辑:程序博客网 时间:2024/06/10 22:39
字符数组,完整地说叫字符类型的数组,字符数组不一定是字符串。
字符串是最后一个字符为NULL字符的字符数组。字符串一定是字符数组。
字符数组的长度是固定的,其中的任何一个字符都可以为NULL字符。
字符串只能以NULL结尾,其后的字符便不属于该字符串。
strlen()等字符串函数对字符串完全适用,对不是字符串的字符数组不适用。
下面来看一个例子
#include <stdio.h>#include <string.h>int main(void){ //这是字符数组赋初值的方法 char cArr[] = {'Q','U','A','N','X','U','E'}; //这是字符串赋初值的方法 char sArr[] = "quanxue"; //用sizeof()求长度 printf("cArr的长度=%d\n", sizeof(cArr)); //长度为7 printf("sArr的长度=%d\n", sizeof(sArr)); //长度为8,最后一位是NULL //用printf的%s打印内容 printf("cArr的内容=%s\n", cArr); //不能正确显示 printf("sArr的内容=%s\n", sArr); //可以正确显示 //用strlen()求长度 printf("cArr的长度=%d\n", strlen(cArr)); //不正确的结果 printf("sArr的长度=%d\n", strlen(sArr)); //NULL不在计算范围 return 0;}
从上面的例子,我们可以看出有以下几点需要注意
一、char sArr[] = "quanxue";这种方式,编译时会自动在末尾增加一个NULL字符。
二、字符串只能以NULL字符结尾,NULL字符也就是'\0',在ASCII表中排在第一个,用16进制表示为0x00,用10进制表 示为0
三、sizeof()运算符求的是字符数组的长度(字符数组的长度时固定的),而不是字符串长度(字符串长度计算时不包括末 尾的NULL字符)。
四、strlen()函数求的是字符串长度,而不是字符数组。它不适用于字符串以外的类型。
五、char sArr[] = "quanxue";也可以写成char sArr[8] = "quanxue";(注意:是8而不是7)
字符数组与字符串数组之间的转化:
字符数组中插入一个NULL字符,NULL字符前面(包括NULL字符)就成了字符串,一般NULL字符插在有效字符的最后
0 0
- C语言 字符数组和字符串
- C语言定义字符串和字符数组
- C语言字符数组和字符串注意
- 29.C语言字符串和字符数组
- C语言中字符串和字符数组
- C语言字符数组和字符串
- 65 C语言字符数组和字符串
- c语言字符串和字符数组
- C语言字符数组和字符串
- C语言中的字符串和字符数组
- C语言字符串、字符数组
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- android Notification深入
- IOS中Json解析的四种方法
- hdu2639Bone Collector II
- 使用java调用本地EXE程序
- Codeforces #246 (Div. 2) A. Choosing Teams
- C语言 字符数组和字符串
- 关于jdk的版本兼容问题
- 作为一个新人,怎样学习嵌入式Linux?
- cardlayout布局管理器的使用方法
- Js或Jquery中去掉字符串变量前后的空格!(已解决!)
- 字节对齐
- [Unity3D]蓝港面试题
- 一篇关于正则表达式的学习文章。
- 在VS中添加lib的三种方法