您好,欢迎访问三七文档
目录第4章字符串处理问题.................................................................................................................24.1基础知识............................................................................................................................24.1.1字符、字符串的输入输出.....................................................................................24.1.2字符处理函数.........................................................................................................24.1.3字符串和内存操作函数.........................................................................................24.1.4字符串转换函数.....................................................................................................34.2............................................................................................................................................34.3例4002按错键.................................................................................................................64.4例4003字符串统计.........................................................................................................74.5例4004开门人和关门人.................................................................................................84.6例4005看和说...............................................................................................................104.7例4006A+B问题...........................................................................................................114.8例4007圆括号编码.......................................................................................................124.9例4008在线评判系统...................................................................................................144.10例4009令人惊讶的字符串.........................................................................................174.11例4010古代密码.........................................................................................................194.12例4011检验和.............................................................................................................214.13例4012摩尔斯编码.....................................................................................................234.14例4013anagrammatic距离..........................................................................................27课堂练习题4...........................................................................................错误!未定义书签。课后练习题4.........................................................................................................................29附录:常用缩写词.........................................................................................................................39参考文献.........................................................................................................................................40第4章字符串处理问题4.1基础知识字符串在程序设计中特别在ACM比赛中引用的非常广泛,尤其是在输入输出当中。下面来介绍一些操作字符串的函数和方法:#includestring//C++的头文件#includestring.h//C语言的头文件4.1.1字符、字符串的输入输出charc;char*str=newchar[];scanf(“%c”,c)printf(“%c”,c);//接收单个字符scanf(“%s”str);printf(“%s”,str);//以“空格”作为间隔符;cinstr;coutstr;//以“空格”作为间隔符;C++用法gets(str);puts(str);//以“回车”作为间隔符;getline(cin,str);//以“回车”作为间隔符4.1.2字符处理函数在ctype.h头文件中,主要有:intisdigit(intc)判断c是否是数字字符,是则返回1,否则返回0,下同intisalpha(intc)判断c是否是一个字母intisalnum(intc)判断c是否是一个数字或字母intislower(intc)判断c是否是一个小写字母intislower(intc)判断c是否是一个小写字母intisupper(intc)判断c是否是一个大写字母inttoupper(intc)如果c是一个小写字母,则返回其大写字母inttolower(intc)如果c是一个大写字母,则返回其小写字母4.1.3字符串和内存操作函数字符串和内存操作函数声明在string.h中,在调用这些函数时,可以用字符串常量或字符数组名,以及char*类型的变量,作为其char*类型的参数。字符串函数常用的有:char*strchr(char*s,intc):如果s中包含字符c,则返回一个指向s第一次出现的该字符的指针,否则返回NULLchar*strstr(char*s1,char*s2):如果s2是s1的一个子串,则返回一个指向s1中首次出现s2的位置的指针,否则返回NULLchar*strlwr(char*s):将s中的字母都变成小写char*strupr(char*s):将s中的字母都变成大写char*strcpy(char*s1,char*s2):将字符串s2的内容拷贝到s1中去char*strncpy(char*s1,char*s2,intn):将字符串s2的内容拷贝到s1中去,但是最多拷贝n个字节。如果拷贝字节数达到n,那么就不会往s1中写入结尾的’\0’char*strcat(char*s1,char*s2):将字符串s2添加到s1末尾intstrcmp(char*s1,char*s2):比较两个字符串,大小写相关。如果返回值小于0,则说明s1按字典顺序在s2前面;返回值等于0,则说明两个字符串一样;返回值大于0,则说明s1按字典顺序在s2后面。intstricmp(char*s1,char*s2):比较两个字符串,大小写无关,其他和strcmp同。intstrlen(constchar*string):计算字符串的长度char*strncat(char*strDestination,constchar*strSource,size_tcount):将字符串strSource中的前count个字符添加到字符串strDestination的末尾intstrncmp(constchar*string1,constchar*string2,size_tcount):分别取两个字符串的前count个字符作为子字符串,比较它们的大小char*strrev(char*string):将字符串string前后颠倒。void*memcpy(void*s1,void*s2,intn):将内存地址s2处的n字节内容拷贝到内存地址s1void*memset(void*s,intc,intn):将内存地址s开始的n个字节全部置为c4.1.4字符串转换函数有几个函数,可以完成将字符串转换为整数、或将整数转换成字符串等这类功能。它们定义在stdlib.h中:intatoi(char*s):将字符串s里的内容转换成一个整型数返回。比如,如果字符串s的内容是“1234”,那么函数返回值就是1234doubleatof(char*s):将字符串s中的内容转换成浮点数。char*itoa(intvalue,char*string,intradix):将整型值value以radix进制表示法写入string。比如:charszValue[20];itoa(32,szValue,10);则使得szValue的内容变为“32”itoa(32,szValue,16);则使得szValue的内容变为“20”4.2例4001HTML解析(来源:acm.zju.edu.cn1099)问题描述:如果你在一台没有安装Netscape浏览器的Macintosh机器上,试着阅读一个html文档,那是件非常困难的事情。你的任务是要编程实现一个小的html浏览器。要求显示输入文件的内容,你需要知道html的标签:br表示换行,hr表示水平线,另外还有制表符,空格和换行符。每行不超过80个字符。输入:输入包括一个你要显示的内容文本。这个文本包括一些单词和HTML标签,它们由一个或多个空格、制表符或换行符分割开
本文标题:4字符串处理
链接地址:https://www.777doc.com/doc-4689605 .html