A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a1219117593 中级黑马   /  2015-11-4 23:01  /  1044 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

-----字符串
字符串是位于双引号中的字符序列
在内存中以"\0"结束,所占字节比实际多一个

1.可以把一个字符常量赋给一个字符变量,但不能把字符串常量赋给字符变量
2.C语言中没有字符串变量,可以用字符数组来存放字符串

字符数组
格式
char 数组名[常量表达式]
char 数组名[常量表达式1][常量表达式2]

注意:定义字符数组时,
应确保数组长度比字符串长度至少多1

char ch[] = {'a','b','c','\0'};

char ch2[]= {"abc"};

1)char c[10]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'}; 定义的同时进行初始化

2)char c4[10] = {"adc"}  //定义了一个字符串数组c4 长度是10,初始化4个字符

3)char c5[5]="ab";       //未被使用的元素均被自动初始化为0(ASCII)
  char c6[]="afdsafas";

//先定义再初始化
char c7[3];
c7[0] = 'a';
c7[1] = 'b';
c7[2] = 'c';

使用string函数初始化字符串
strcpy(c7,"xxx");    //  把xxx复制到c7代替c7原本的内容   但是要注意"xxx"的长度比c7的长度短


以字符串的形式输入和输出

使用的格式字符串为“%s”,表示输入、输出的是一个字符串。

%s 从给定的地址开始,输出字符直到遇到\0结束


注意在本例的printf函数中使用的%s,输出表列中给出 数组名 则可。
不能写为:printf("% s",c[]);

对一个字符数组,如果不作初始化赋值,则必须说明数组长度。


1)字符数组初始化时没有使用 '\0'

先定义的变量存放在内存高地址,后面定义变量放在内存低地址

用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。

char ch[] = {'a','b','c','\0'};

char ch2[]= {"abc"};

关于字符串长度,如果在定义的没有规定字符串数组长度,则看元素个数,若规定了,则数组长度则是字符串长度.

评分

参与人数 3黑马币 +45 收起 理由
朱旭 + 15 吓尿了
笑笑有晴天丶 + 10
wpf986530062 + 20 很给力!挺好,继续加油

查看全部评分

3 个回复

倒序浏览
小小心得 慢慢更新
回复 使用道具 举报
~~~~感谢我~
回复 使用道具 举报
顶,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马