黑马程序员技术交流社区

标题: 字符数组与字符串小知识 [打印本页]

作者: 曦正    时间: 2016-2-18 08:29
标题: 字符数组与字符串小知识

问:可不可以说字符数组就是字符串?
答:不可以,C语言规定:只有以“\0”结尾的字符数组才称字符串;
核心:任意字符数组,如果希望是一个字符串,则必须以“\0”结尾,才能够用字符串的格式化输出。

字符分字符和字符串

字符型常量是用引号括起来的一个或一串字符,例如:‘a’或“abc”都是合法的字符或字符串;

字符常量有以下特点:

1.字符常量只能用单引号‘’,不能用其它符号;
2.字符只能是单个字符,不能是多字符;
3.字符可以是字符数组中的任意字符,但数字被定义为字符型后不能参与数值运算;

字符串

1.字符串是由多个字符组成的;
2.字符串中的个数为字符串的长度,长度为“0”的字符串为空字符;
3.存储字符串时,由系统在字符串的末尾自动加上一个“\0”作为字符串的结束标志,例如:字符串“welcome”在内存中的存储形式如下:

sizeof与strlen的区别:
sizeof计算字符串时包含了’\0’,而strlen计算时,没有包含’\0’;

如何定义字符串?

定义字符串有三种方式

字符串常见操作输入输出

puts(字符串名)用输出字符串;
gets(字符串名)用于输入字符串;(有风险,容易造成内存溢出)

字符串拼接

strcat(字符串名1,字符串名2);
是将字符串2拼接到字符串1当中,所以拼接时第一个字符串变量的空间要足够大;

字符串拷贝

strcpy(字符串名1,字符串名2);
把字符串名2中的内容替换到字符串名1中,而对字符串2没有任何影响;

***字符串比较***

strcmp(字符串1,字符串2);
strcmp会返回一个int类型的值,当strcmp==0时,说明这两个字符串是一样的;
底层是通过ASCII码来比较的;







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2