zoukankan      html  css  js  c++  java
  • 首字母大写--牛客

    题目描述

    对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符(' ')、回车符(' ')、换行符(' ')。

    输入描述:

    输入一行:待处理的字符串(长度小于100)。

    输出描述:

    可能有多组测试数据,对于每组数据,
    输出一行:转换后的字符串。
    示例1

    输入

    if so, you already have a google account. you can sign in on the right.
    

    输出

    If So, You Already Have A Google Account. You Can Sign In On The Right.

    解题分析

    对字符串进行扫描,并采用记录的方式将间隔符前面的字符数记录下来,判定后直接对小写字母进行更改。

    需要注意的是以下几点:

    1、对字符串的输入

        用cin>>str 这种方法来接收字符串那么录入的str不能包含空格,否则它会按照空格将整个字符串切分成若干段。

      如果你要是想输入带空格的字符串那就要用到getline()

    #include <iostream>
    #include <string>
    using namespace std;
    
    string s;
    getline(cin,s);

    2、对最后一个单词的处理,由于字符串的结尾使用的是 ''

       在这里我使用下标标注最后一个字符,读取到最后一个单词。

       另外还需要对最后一个单独字符做处理。

    3、C中对字母大小写的转换

      

            

    • 小写字母的ASCII 码大
    • 大写字母的ASCII码小
    • 大小写字母的ASCII 码相差32
    • 数字的ASCII码比字母小 0字符为 48

    最后代码如下:

     1 #include <iostream>
     2 #include <string>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     string s;
     8     getline(cin,s);  //对带间隔符的字符串输入
     9     int count =0;
    10       int i=0;
    11         for(i=0;i<s.length();i++)
    12         {
    13             if(s[i]==' '||s[i]=='	'||s[i]=='
    '||s[i] =='
    '||i==s.length()-1) 
    14             {                                                  //考虑最后一个单词
    15                 if(count!=0&&s[i-count]<='y'&&s[i-count]>='a') 
    16                     s[i-count] = s[i-count]-32;
    17                 count=0;
    18             }
    19             else
    20                 count++;
    21         }
    22     if(s[i-1]<='y'&&s[i-1]>='a')     //若最后一个单词是单独的字符
    23         if(s[i-2]==' ')
    24             s[i-1]-=32;
    25     cout << s <<endl;
    26 }
  • 相关阅读:
    异常以及异常处理框架探析
    ArcGis Server10 for java初试
    C#制作鹰眼全过程(带注释)
    flex remoteobject 因默认设置而调用失败
    ExecutorService.submit(Callable).get()不并发执行
    学习《The Flex, Spring, and BlazeDS full stack》-1
    java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V
    用内置jetty运行项目struts2提示找不到Action
    二分查找
    排序
  • 原文地址:https://www.cnblogs.com/jiashun/p/newcode20.html
Copyright © 2011-2022 走看看