字符串类问题
标签: 机试攻略 - 高分篇
学习人数: 26.4k


高清播放
赞赏支持

字符串类的问题也是各个院校必考的题型之一,基本上有以下这些考点:

1、统计字符个数
2、单词首字母大写
3、统计子串出现次数
解析:考察大家基础的字符串遍历能力。
4、文本加密/解密
解析:通过循环往后移动x位或直接给一个映射表是比较常见的考法。
5、文本中的单词反序
解析:灵活使用string可以秒杀这类题目,当然也可以用字符串一步步解析。
6、删除字符串(大小写模糊)
解析:如果大小写不模糊,那么就是直接找到之后删除。大小写模糊的话,只是多一个判断。

 

加密算法
题目描述:
编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E、C->F、......、Y->B、Z->C。小写字母同上,其他字符不做转化。输入任意字符串,输出加密后的结果。
例如:输入"I love 007",输出"L oryh 007"
输入描述:
输入一行字符串,长度小于100。
输出描述:
输出加密之后的结果。
输入样例#:
I love 007
输出样例#:
L oryh 007
题目来源:
DreamJudge 1014

题目解析:这是一道很常见的加解密考法,往后移动3位是这道题的核心,我们只需要按照题意将大写字母、小写字母、和其他分开进行处理就可以,具体看代码。
 

参考代码

#include <stdio.h>  
#include <string.h>  
  
int main() {  
    char s[105];  
    gets(s);//输入一行文本用gets  
    int len = strlen(s);  
    for (int i = 0; i < len; i++) {  
        if (s[i] >= 'A' && s[i] <= 'Z')
            s[i] += 3;  
            if (s[i] > 'Z') s[i] -= 26;
        }  
        else if (s[i] >= 'a' && s[i] <=
            s[i] += 3;  
            if (s[i] > 'z') s[i] -= 26;
        }  
        else {  
            continue;  
        }  
    }  
    puts(s);  
    return 0;  
}  

 

登录查看完整内容


课后作业

练习题目

DreamJudge 1012 字符移动
DreamJudge 1292 字母统计
DreamJudge 1240 首字母大写
DreamJudge 1394 统计单词
DreamJudge 1027 删除字符串2


登录后开始许愿

暂无评论,来抢沙发