文章教程

全国计算机等级考试二级C语言13.6字符串

8/22/2020 10:24:52 PM 人评论 次浏览

13.6 字符串

考点15 字符串的表示

由于没有字符串变量,所以用一维字符数组表示字符串,其定义、初始化均与一般的数组相仿。

如果在声明字符数组的同时初始化数组,则可以不规定数组的长度,系统在存储字符串常量时,会在串尾自动加上一个结束标识‘\0’。结束标识在字符数组中也要占用一个元素的存储空间,因此在声明字符数组的长度时,要预留出该字符的位置。

当然还可以采用循环语句进行输入输出,程序如下:

#include<stdio.h>

void main(){

char a[2];

scanf("% s",a);/* 或者用gets(a)进行输入操作* /

printf("% s\\n",a);/* 或者用puts(a)进行输出操作* /

输入:ab

输出:ab

题型剖析字符串及其数组元素的引用在上机中的考查形式如下

(1)字符与字符常量的表示形式及输出形式,字符常量用(' '),输入输出时使用格式字符“%c”;字符串与字符串常量的表示形式及输出形式分别为“”和“%s”。

(2)字符串结束标识‘\0’。根据‘\0’来判断字符串是否结束,例如:

for(i=0;str[i]!='\0';i++)

考点16 指向字符串的指针

定义格式:

char* 指针变量

初始化方法:

char*p =“abc”;

使用方法

while(*p){}

注意:只有字符数组才可以应用数组名称直接将整个数组中的元素输出,其他类型的数组不具备这种特征。

题型剖析:

(1)填空题中,常常要求根据函数的调用,写出参数中字符串指针的正确形式。如:a,b是两个数组,对于函数void fun (char*a,char*b),其调用形式为fun(a,b)。

(2)使用指针对字符串进行操作。

例如,字符串s="hello",指针p指向字符串s,要求将字符串中的字母‘l’转换或字符‘a’,程序如下:

while(p)

{ if(*p=='l')

*p='a';

p++;

}

考点17 字符串处理函数

(1)strcpy()字符串复制函数

例如:char a[] = "abc";

char b[] = "b";

strcpy(a,b);/* 调用结束后,a = "b"* /

C语言中不可以应用“=”直接将一个字符串的值复制给另外一个字符串,但可以用库函数中的strcpy()函数来实现。

(2)strcat()字符串连接函数

例如:char a[] = "abc";

char b[] = "b";

strcat(a,b);/* 调用结束后,a = "abcb"* /

(3)strlen()字符串长度函数(从起始指针到\0处为止的字符总数)

例如:char a[100] = "abc";

int b = strlen(a);/* 调用后b = 3 */

(4)strcmp()字符串比较函数

例如:char a[] = "abc";

char b[] = "b";

int c = strcmp(a,b);/* 调用结束后,c = -1 * /

即按字典序排列,靠后的字符串比较大。a<b,返回-1;a>b,返回1;如果两个字符串相同,则返回0。

题型剖析这里主要是牢记各个函数的功能和调用方法。字符串处理函数可以方便的对字符串进行处理,在上机过程中,熟练使用字符串处理函数(除非题目要求不能使用),可以大大减少我们的工作量。

教程类别