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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曦正 中级黑马   /  2016-2-18 08:29  /  520 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

字符分字符和字符串

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

字符常量有以下特点:

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

字符串

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

  • #include <string .h>
  • strlen(字符串变量名)//用来计算字符串变量的长度,需要引进新的头文件
  • /*
  • 字符串“welcome”的存储
  • w    e    l    c    o    m    e    \0
  • 字符串长度要比字符的长度多1个'\0'的长度,且一个中文字符占3个字节
  • */

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

如何定义字符串?

定义字符串有三种方式

  • #include <stdio.h>
  • int main(int argc,const char* argv[]){
  • char a[4]={'a','b','c','\0'};//以字符数组+'\0'的方式定义
  • char b[]="abc";//常规方式定义
  • char* c="abc";//指针方式定义
  • return 0;
  • }
字符串常见操作输入输出

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

字符串拼接

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

字符串拷贝

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

***字符串比较***

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马