读程序写结果之进阶篇
上一讲,我们就“读程序写结果”解题的一般方法,做了个简单的探讨与总结。本讲,我们共同来研究两个特例:有关“字符(串)的操作与递归调用。
技巧五:字符串的处理
字符串操作,无论是NOIP初赛还是复赛,近些年来,频频出现,非常明确地提醒了选手,在准备NOIP竞赛时,必须充分地重视并认真彻底地把字符(串)操作了解清楚。
在c/c++中,有关字符的类型有两种:char、string。特别要注意类型string与字符数组的异同点:(假设变量说明为:stringa;charb[100];)
相同点:都可以用下标变量(形如a[i]、b[i])进行访问。
有关字符(串)的函数与过程,请参阅“基础篇”。值得一提的是,常用字符的ASCII码为(括号内为ASCII码,从小到大排列):…’0’(30H)…’9’…’A’(41H)…’Z’…’a’(61H)…’z’…
对字符(串)的处理,要求选手能结合字符(串)有关知识,灵活使用前面讲过的技巧。以下选例说明字符(串)操作在“读程序写结果”中的应用。
[选例八NOIP2008提高组第四题]
1#include<stdio.h>
2#include<stdlib.h>
3#include<string.h>
4inti,j,len;
5chars[50];
6intmain()
7{
8scanf("%s",s);
9len=strlen(s);
10for(i=0;i<len;++i)
11{
12if(s[i]>='A'&&s[i]<='Z')s[i]-='A'-'a';
13}
14for(i=0;i<len;++i)
15{
16if(s[i]<'x')s[i]+=3;elses[i]+=-23;
17}
18printf("%s/",s);
19for(j=1;j<4;j++)
20{
21for(i=0;i<len-j;i=i+j)
22{
23s[i]=s[i+j];
24}
25}
26printf("%s\n",s);
27/*
28输入:ABCDEFGuvwxyz
29*/
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库阅读程序写结果之进阶篇(c语言版)在线全文阅读。
相关推荐: