C语言的字符串及基本运算
作者:王祥瑞
来源:《商情》2010年第36期
作者:王祥瑞
来源:《商情》2010年第36期
【摘要】《C语言》是非计算机专业本科学生的一门必修课,也是一门理论性强、实践要求较高的课程,学生掌握起来有一定的难度。尤其是字符串的定义、存储及使用,更是灵活多变、处理函数丰富,为了便于学生掌握,收到更好的教学效果,现对C语言中的字符串及其相关运算做相关的归纳总结。字符串常量可以与整数混合运算
【关键词】C语言 字符串 字符串处理函数
为提高《C语言》程序设计语言的教学效果,本文结合多本优秀教材的教学内容,不断地总结和积累教学实践之中的经验,对字符串的定义、存储及使用进行了归纳及总结,有助于学生在有限的教学时间内,以最快最简单易懂的方式,扎实地掌握C语言中字符串的内容,并能运用自如。
一、字符串
算法处理的对象是数据,而数据是以某种特定的形式存在的,例如整数、实数、字符等形式。数据的组织形式称为数据结构。C语言的数据结构是以数据类型形式出现的。C语言中,字符型数据的常量形式包括字符常量和字符串常量。字符常量是用单引号括起来的一个字符,如‘A’,‘a’,‘X’,‘$’等都是字符常量。字符串常量是用一对双引号括起来的一串字符序列,如“How are you?”, “CHINA”,“a”,“$123.5”等都是字符串常量。
二、字符串的表现形式
在C程序中,可以用两种方法实现一个字符串的存储和运算:字符数组和字符指针。
1.用字符数组实现
void main(void)
{
static char string [ ] = "I Love China!";
printf("%s\\n",string);
}
运行时输出: I Love China!
其中,string是数组名,它代表字符数组的首地址, string[4]代表数组中序号为4的元素,实际上string[4]就是*(string+4),string+4是指向字符‘v’的指针。
2.用字符指针实现
我们还可以定义一个字符指针,用字符指针指向字符串中的字符。
void main(void)
{
char *string = "I Love China!";
printf("%s\\n",string);
}
在这里没有定义字符数组,但C语言对字符串常量是按字符数组处理的,实际上在内存开辟了一个字符数组用来存放字符串数组。在程序中定义了一个字符指针变量string,并把字符串首地址即存放字符串的字符数组的首地址赋给它。
三、字符串的基本运算
在C语言的函数库中提供了一些用来处理字符串的函数,以方便字符串的基本运算。
1.字符串输出
函数原型:int puts(char *string);
函数功能:其功能是按行将字符串送到流stdout中。如【例1】,puts函数遇到\\0会认为字符串结束,所以输出结果为xy。
2.字符串输入
函数原型:char * gets(char *s);
函数功能:其功能是从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在str指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。实例如【例2】,需要注意的是本函数可以无限读取,不会判断上限,所以程序员应该确保str的空间足够大,以便在执行读操作时不发生溢出。
3.测字符串长度
函数原型:int strlen(char *s) ;
函数功能:其功能是求串s的长度,不包括结束符NULL。实例如【例3】。
4.字符串复制
函数原型:char *strcpy(char *to,*from) ;
函数功能:其功能是将from串复制到to串中,并返回to开始处指针。实例如【例4】。
5.字符串连接
函数原型:char *strcat(char *to,char *from);
函数功能:其功能是将from串复制到to串的末尾,并返回to串开始处指针。实例如【例5】。
6.字符串比较
函数原型:int strcmp(char *s1,char *s2) ;
函数功能:其功能是比较s1和s2两个字符串的大小,当s1s2和s1=s2时,分别返回小于0、大于0和等于0的值。result=strcmp("baker","Baker");其结果是result>0。result=strcmp("12","12");其结果是result=0。result=strcmp("Joe","joseph");其结果是result
7.字符串定位
函数原型:char *strchr(char *s,char c);
函数功能:其功能是c在字符串s中第一次出现的位置,若到,则返回该位置,否则返回NULL。实例如【例7】。
应当指出的是,上述操作是最基本的,其它的串操作可以详细参见C的,其余的串操作
一般可由这些基本操作组合而成。【例8】是不用strcat()函数,将两个字符串连接起来的程序。
当一个教师具有高度的职业道德和责任感时,在教学实践中不断地摸索,总能出一些优秀的教学方法,使学生学的有兴趣、练的有效果。在C语言教学中,有步骤、分层次的对所学知识进行总结、剖析,能更充分地调动学生的学习兴趣,使学生真正收获知识,增强实践应用能力,掌握应试技巧,提高教学效果,为后续课程打下一个坚实的基础。
参考文献:
[1]谭浩强. C 程序设计[M]. 清华大学出版社,2002.
[2] 孙锋.《C语言程序设计》教学的几点体会[J].计算机与信息技术,2006,7.
[3] 董卫红.《C语言程序设计》的教学改革与实践[J].常州轻工职业技术学院学报,2007,1.
[4]Harvey M.Deitel Paul J.Deitel著,聂雪军,贺军译. C HOW TO PROGRAM [M].清华大学出版社,2006.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论