• HDU2026 首字母变大写


    问题链接:HDU2026 首字母变大写

    问题描述:参见上述链接

    问题分析:这是一个字符串输入处理问题,也是一个基本的输入处理训练问题。

    程序说明:通过这个例子,可以知道C++程序中如何读入一行,如何判定输入结束(文件结束),以及如何用库函数进行字母判定和大小写转换。

    如果用C语言来写这个程序,则是另外一番风景,参见后面给出的代码。由于新标准库函数中,gets()不被推荐使用,所有编写了自己的函数mygets()。

    AC的C++语言程序如下:

    /* HDU2026 首字母变大写 */
    
    #include <iostream>
    #include <string>
    #include <cctype>
    
    using namespace std;
    
    int main()
    {
        string s;
    
        while(getline(cin, s)) {
            if(islower(s[0]))
                s[0] = toupper(s[0]);
    
            for(int i=1, len=s.length(); i<len; i++) {
                if(s[i-1] == ' ' && islower(s[i]))
                    s[i] = toupper(s[i]);
            }
    
            cout << s << endl;
        }
    
        return 0;
    }


    AC的C语言程序如下:

    /* HDU2026 首字母变大写 */
    
    #include <stdio.h>
    
    #define MAXN 100
    #define DELTA 'a'-'A'
    
    int mygets(char s[])
    {
        int i = 0;
        char c;
    
        while((c = getchar()) && c != '
    ' && c != EOF)
            s[i++] = c;
        s[i] = '';
    
        return i > 0 || c != EOF;
    }
    
    int main(void)
    {
        char s[MAXN+1];
        int i;
    
        while(mygets(s)) {
            if('a' <= s[0] && s[0] <= 'z')
                s[0] -= DELTA;
    
            for(i=1; s[i]!=''; i++) {
                if(s[i-1] == ' ' && 'a' <= s[i] && s[i] <= 'z')
                    s[i] -= DELTA;
            }
    
            printf("%s
    ", s);
        }
    
        return 0;
    }



  • 相关阅读:
    Word pair Hu
    [bzoj1601] 灌水
    小木棍
    雇佣计划
    [Luogu1282] 多米诺骨牌
    [Luogu1216] 数字三角形
    [Luogu1734] 最大约数和
    [NOIp2008] 传纸条
    [Luogu1325] 雷达安装
    nginx
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564081.html
Copyright © 2020-2023  润新知