2018年9月计算机二级C语言考点解析:字符串

  出国留学网在这里为考生们整理了“2018年9月计算机二级C语言考点解析”,希望能帮到大家,想了解更多考试资讯,请关注小编的及时更新哦。

  2018年9月计算机二级C语言考点解析:字符串

  10.1字符串与字符数组

  1.字符数组的定义

  定义方法与前面介绍的类似,只是将数组定义为字符型即可。例如:

  charc[10];

  这里定义了一个包含10个元素的字符数组c。

  2.字符数组的初始化

  对字符数组初始化,可以采用以下方法:

  (1)逐个字符赋给数组中各元素;

  (2)用字符串常量使字符数组初始化。

  3.字符串

  在C语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中,故可以把字符型一维数组作为字符串变量。

  字符串常量是用双引号括起来的一串字符。

  C语言中约定用′\0′作为字符串的结束标志,它占内存空间,但不计入串的长度,′\0′的代码值为0。

  系统对字符串常量也自动加一个′\0′作为结束符。例如″clanguage″共有10个字符,但在内存中占11个字节,最后一个字节存放′\0′。

  4.字符数组的输入输出

  (1)逐个字符输入和输出

  ①在标准输入输出printf和scanf中使用%c格式描述符;

  ②使用getchar和putchar函数。例如:

  for(i=0;i<10;i++)

  scanf(″%c″,&str[i]);/*或str[i]=getchar();*/

  str[i]=′\0′;/*人为加上串结束标志*/

  for(i=0;i<10;i++)

  printf(″%c″,str[i]);/*或putchar(str[i]);*/

  (2)字符串整体输入输出

  ①在标准输入输出函数printf和scanf中使用%s格式描述符;

  输入形式:

  charstr[6];

  scanf(″%s″,str);

  其中str为字符数组名,代表着str字符数组的起始地址,输入时系统自动在每个字符串后加入结束符′\0′。若同时输入多个字符串,则以空格或回车符分隔。

  输入形式:

  printf(″%s″,str);

  输字符串时,遇第一个′\0′即结束。但可人为控制输出串所占的域宽如:

  printf(″%6s″,str);/*若字符串中字符多于6个,仍将全部输出*/

  printf(″%-6s″,str);/*只输出前6个字符,多余的不输出*/

  ②使用gets和puts函数输入输出一行

  gets函数用来从终端键盘读字符,直到遇换行符为止,换行符不属字符串的内容。

  调用形式:

  gets(str);

  str为字符数组名或字符指针,字符串输入后,系统自动将′\0′置于串尾代替换行符。若输入串长超出数组定义长度时,系统报错。

  Puts函数用来把字符串的内容显示在屏幕上。

  调用形式:

  puts(str);

  str的含义同上。输出时,遇到第一个′\0′结束并自动换行,字符串中可以含转义字符。

  10.2字符串的指针以及指向字符串的指针变量

  1.用指针方法实现一个字符串的存储和运算

  如:

  char*strp=″china″;

  此处定义了一个字符指针变量strp,变量中存放的是字符串第一个字符的地址。

  C语言对字符串常量是按字符数组处理的,它实际上在内存开辟了一个字符数组用来存放字符串变量,并把字符串首地址赋给字符指针变量strp。

  在输出时用

  printf(″%s\n″,strp);

  通过字符数组名或字符指针变量可以输出一个字符串。而对一个数值型数组,是不能企图用数组名输出它的全部元素的。

  2.字符指针变量与字符数组

  虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈,主要有以下几点:

  (1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串的首地址),决不是将字符串放到字符指针变量中。

  (2)对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。

  Charstr[14];

  str=″IloveChina!″;

  而对字符指针变量,可以采用下面方法赋值:

  char*a;

  a=″IloveChina!″;

  但注意赋给a的不是字符,而是字符串的首地址。

  (3)赋初值时,对以下的变量定义和赋初值:

  char*a=″IloveChina!″;

  等价于:

  char*a;

  a=″IloveChina!″;

  而对数组初始化时:

  staticcharstr[14]={″IloveChina!″};

  不能等价于

  charstr[14];

  str[]={″IloveChina!″};

  即数组可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

  (4)在定义一个数组时,在编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个地址值,就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,这时该指针变量并未具体指向哪一个字符数据。

  (5)指针变量的值是可以改变的。

  3.字符串处理函数

  C语言中没有对字符串进行合并、比较和赋值的运算符,但几乎所有版本的C语言中都提供了有关的库函数。例如:

  (1)strcat函数:连接两个字符数组中的字符串

  (2)strcpy函数:字符拷贝函数

  (3)strcmp函数:字符比较函数

  (4)strlen函数:测试字符串长度的函数

  (5)strlwr函数:将字符串中大写字母转换成小写字母

  (6)strupr函数:将字符中小写字母转换成大写字母

  推荐阅读:

  2018年计算机二级考试大纲汇总

  2018年计算机二级考试备考经验汇总

  2018年计算机二级考试WEB考点汇总

  2018年计算机二级考试VB习题答案汇总

  2018年计算机二级考试WEB试题及答案汇总

  出国留学网计算机等级考试 栏目推荐

  2018年计算机等级考试计划

  2018年计算机等级考试时间

  计算机等级考试动态

  计算机等级考试报名时间

  计算机等级考试时间

  计算机等级考试准考证打印时间

  计算机等级考试成绩查询时间

  计算机等级考试试题及答案

分享

热门关注

计算机二级考试时间多长

关于计算机二级

计算机二级考试时间一年几次呢

关于计算机二级

计算机二级考试时间分配

关于计算机二级

计算机二级考试内容考些什么

考试内容

计算机二级什么时候出成绩呢

计算机成绩

计算机二级考试c语言难不难

计算机二级考试

计算机二级考试重要考点归纳

二级考试重要考点归纳

计算机二级怎么自学

计算机二级自学

计算机二级office考什么

计算机二级

计算机二级有哪些科目

计算机二级科目