第5章 基础题目选编(5.1 字符串)
来源:互联网 发布:.cx域名行情 编辑:程序博客网 时间:2024/06/10 18:26
5.1.1 WERTYU
题目描述:见参考书
【分析】
枚举键盘上的所有字符——一个字符串,将其存入字符数组或用字符指针指向它,之后,在循环中寻找输入字符在字符串中的位置,当确定该位置后,将该字符输出。注意,还需考虑输入字符在字符串中不存在时的处理情况,如空格等符号。参考代码如下:
#include<stdio.h>#include<string.h>char *s="`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./";int main(){char c;int i;while((c=getchar())!=EOF){ //利用空循环确定输入字符c在字符串s中的位置,s[i]用来设定未找到时的循环结束for(i=1;s[i]&&s[i]!=c;i++);if(s[i]){putchar(s[i-1]);}else{putchar(c);}}return 1;}
5.1.2 Tex括号
题目描述:见参考书
【分析】
判断“ " ”出现时其前面是否出现过“ " ”,若出现过,则输出“ ” ”,反之,则输出“ “ ”。因此,可设置一个标志位,值为0或1,由其控制是否出现。参考代码如下:
#include<stdio.h>int main(){char c;int flag=1;while((c=getchar())!=EOF){if(c=='"'){if(flag){printf("\“"); flag=0; }else{printf("\”"); }}else{printf("%c",c);}}return 1;}
5.1.3 周期串
题目描述:见参考书
【分析】
依次判断第i个元素与第i+j个元素是否相等,若一直相等,则j即为最小周期。参考代码如下:
#include<stdio.h>#include<string.h>int main(){int i,j; char s[81];scanf("%s",s);for(j=1;j<=strlen(s)/2;j++){ //周期必然可以整除字符串长度 if(strlen(s)%j==0){//从i开始,判断i之后第j个元素与第i个元素是否相等 for(i=0;i+j<strlen(s);i++){if(s[i]!=s[i+j]){break;}} //若条件成立,说明for循环正常结束,没有触发for循环中的if条件 //即元素i与其之后第j个元素均相等,则此时,j即为所求周期,查找结束
if(i+j>=strlen(s)){break;}}}printf("%d\n",j);return 1;}
本周作业:HDOJ2027 1088 1339 1219 1019 1200 1061 2017 2007 1073
- 第5章 基础题目选编(5.1 字符串)
- 【索引】算法竞赛入门经典-第5章 基础题目选解
- 第05章_基础题目选解
- 第05章_基础题目选解
- PTA基础题目5-29删除字符串中的子串
- 第04章-VTK基础(5)
- 第一部分 GeoGeo脚本基础 第3章 字符串表达式
- 字符串-英语数字转换器(数据结构基础 第4周)
- 字符串-KMP算法实现(数据结构基础 第4周)
- 字符串-前缀中的周期(数据结构基础 第4周)
- 字符串-拼写检查(数据结构基础 第4周)
- 基础题目选解_字符串(QWERTY,TEX括号 , 周期串)
- 第5章 基础命令
- 第5章 绘图基础
- 题目5:字符串内排序
- hiho一下,第164周 题目1 : 有序01字符串
- 字符串题目精选(转)
- 第25周-windows程序设计(基础篇)-第1章-wchar_t 宽字符串
- mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
- 设置开机自启动函数
- Android画图并保存图片到本地
- ButterKnife 的使用
- 经典重读《信号与系统》-第九章
- 第5章 基础题目选编(5.1 字符串)
- c语言“->”运算符和“.”运算符的使用简介
- 作业——HDOJ2027
- 作业——HDOJ1088
- 作业——HDOJ1339
- tr 删除控制字符
- SQL语句教程
- Xargs用法详解
- MySQL设置连接权限