zoukankan      html  css  js  c++  java
  • 算法竞赛入门经典5.1.1

    题目如下:

    方法1:

    #include<stdio.h>
    char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
    int main(){
        int i,c;
        while((c=getchar())!=EOF){
            for(i=1;s[i]&&s[i]!=c;i++);
            if(s[i])
                putchar(s[i-1]);
            else
                putchar(c);
        }
        return 0;
    }

    方法2

    #include<stdio.h>
    #include <string.h>
    char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
    char buf[500];
    int getIndexOfS(char c){
        int i;
        for(i=1;s[i]!=c&&s[i];i++);
            if(s[i])
                return i;
            return -1;
    }
    void dealString(int n){
        int i,index;
        for(i=0;i<n-1;i++){
            index=getIndexOfS(buf[i]);
        if(index!=-1)
            putchar(s[index-1]);
        else
            putchar(buf[i]);
        }
        
    }
    int main(){
        int n;
        while(1){
        fgets(buf,sizeof(buf),stdin);
        n=strlen(buf);
        dealString(n);
        }
        return 0;
    }

     收获:

    1.利用字符指针初始化字符数组比直接用字符定义方便

    例如:初始化字符串"wer"时, char st[]={'w','e','r'};但是利用char *st="wer";显得更加高效

    2.转义字符的使用,若想表示这个字符则必须用'\'才能表示出来

    3.fgets(buf,sizeof(buf),stdin);解决输入中有空格的问题,可以一次性读取一整行,最为方便

  • 相关阅读:
    动态规划Dynamic Programming: Rod-Cutting Problem
    递归详解,全排列问题
    获取网站根目录Url
    oracle中操作表和权限
    mongo简单封装
    dapper的简单封装
    反射做字段更新日志
    nopcommerce +autofac +owin +webapi
    批处理命令执行程序
    MSMQ的简单使用
  • 原文地址:https://www.cnblogs.com/liujunming/p/4616374.html
Copyright © 2011-2022 走看看