.字符串处理.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.字符串处理.ppt

一个简单的字符串操作的例子 #includestring.h #includestdio.h char strl[] = “The quick brown dog jumps over the lazy fox”; char str2[50] =“The QUICK brown dog Jumps over the lazy fox”; char str3[40] =“The QUICK brown dog Jumps over the lazy fox”; //错误:字符串共有43个字符,需要一个长度至少为44的字符串变量存储。 //易忽略在字符串的末尾要添加表示结束的额外标志字符’/0’。 char str4[50]; void main(void) { int result; str4 =“The QUICK brown DOG jumps over the lazy fox”; //错误:不能将一个字符串常量赋值给另一个字符串变量。 str4=str2; //错误:不能将一个字符串变量赋值绘另一个字符串变量 str4=str1; //错误:不能将一个字符串变量赋值给另一个字符串变量 printf(“Compare strings:\n\t%s\n\t%s\n\n”,strl,str2); } Look and Say 3、解题思路 4、参考程序 4、参考程序 Caesar 密码 /JudgeOnline/problem?id=1298 South Central USA 2002 Description Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的。 Input 最多不超过100个数据集组成。每个数据集由3部分组成: 起始行:START 密码消息:由1到200个字符组成一行,表示Caesar发出的一条消息 结束行:END 在最后一个数据集之后,是另一行:ENDOFINPUT Output 每个数据集对应一行,是Caesar 的原始消息。 Sample Input START NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END START N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ END START IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END ENDOFINPUT Sample Output IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE 问题分析 问题需要将密码消息中的每个字母分别进行相应的变换。 关键之处是识别输入数据中的消息行、读入消息行的数据。 scanf函数使用输入字符串时,每个字符串中不能有空格。 gets函数一次可读入一行,但有可能会导致warning message,gets接收输入时,不对接收变量进行检查,容易产生内存溢出; fgets(str, sizeof(str), stdin)中sizeof(str)用于限定string接收数据的上限,多数情况面向文件I/O, 由于溢出检查,fgets比gets安全; 解密时,需将消息中单词的字符串作为普通数组,一次变换其中每个字母。 需用以下几个字符串处理函数: gets:读入一行字符串,允许包含空格 strcmp:识别消息行的start和end strlen:计算加密消息中的每个单词的长度 程序 #includestdio.h #includestring.h void decipher (char message[]); void main() { char message[201]; gets(messa

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档