阅读程序写结果之进阶篇(c语言版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

阅读程序写结果之进阶篇(c语言版)
读程序写结果之进阶篇
上一讲,我们就“读程序写结果”解题的一般方法,做了个简单的探讨与总结。

本讲,我们共同来研究两个特例:有关“字符(串)的操作与递归调用。

技巧五:字符串的处理
字符串操作,无论是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’…
对字符(串)的处理,要求选手能结合字符(串)有关知识,灵活使用前面讲过的技巧。

以下选例说明字符(串)操作在“读程序写结果”中的应用。

[选例八NOIP2021提高组第四题]
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*/
感谢您的阅读,祝您生活愉快。

相关文档
最新文档