zoukankan      html  css  js  c++  java
  • PAT1029-----介绍字符串的解题思路和部分知识点

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

    输入格式:

    输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。

    输出格式:

    按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。

    输入样例:

    7_This_is_a_test
    _hs_s_a_es
    

    输出样例:

    7TI---------------------------------------------------------------------
    思路:第一点:设置两个字符串,用strchr函数在str2字符串中查找字符,注意strchr区分大小写,但是本题因为坏掉的字母肯定不会出现所以str中有的字母肯定在str2中有,所以区分大小写没有意义所以用strchr即可
    第二点:toupper是转换为大写字母的函数,在用一次strchr在bad字符串中用于查询是否重复!
    /* * 1. 字母坏键只输出大写;故最差情况按键全坏为,37个字符 * 2. 利用 char *strchr(const char *s,char c);//不存在则返回NULL 判断是否坏键 */

    #include <stdio.h>
    #include<string.h>
    #include<iostream>
    #include <math.h>
    #include <malloc.h>
    using namespace std;int main() {
        char str1[81],str2[81],bad[37]={''};
        cin>>str1;
        cin>>str2;
        int re=0;
        for(int j=0;j<strlen(str1);j++)
        {
            if(!strchr(str2,str1[j]))              //查找第一次出现位置,返回的是指针
            {
                if(!strchr(bad,toupper(str1[j])))
                {
                    bad[re++]=toupper(str1[j]);           //toupper转换为大写字母||如果为小写英文字母,则返回对应的大写字母;否则返回原来的值
                }
            }
        }
        cout<<bad;
        return 0;
    }

    函数原型

    char *strchr(const char *str, int c)

    参数

    • str-- 要被检索的 C 字符串。
    • c-- 在 str 中要搜索的字符。

    功能

    在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。

    返回值

    该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。 [2] 

    头文件

    #include <string.h>
  • 相关阅读:
    PDO扩展
    阿里云ECS VSFTP上传本地文件
    Nginx+lua_Nginx+GraphicsMagick来实现实时缩略图
    Mysql 5.6主从同步配置与解决方案
    windows安装配置mongodb及图形工具MongoVUE
    安装phpredis扩展以及phpRedisAdmin工具
    Redis安装配置以及开机启动
    CentOS安装Git服务器 Centos 6.5 + Git 1.7.1.0 + gitosis
    OpenStack 入门3
    Openstack 入门2
  • 原文地址:https://www.cnblogs.com/BananaMan/p/11222179.html
Copyright © 2011-2022 走看看