字符串之首字母變大寫

Problem C: 首字母變大寫

Description

輸入一個英文句子,將每個單詞的第一個字母改成大寫字母。

Input

輸入數據包含多個測試實例,每個測試實例是一個長度不超過100的英文句子,佔一行。

Output

請輸出按照要求改寫後的英文句子。

Sample Input

i like acm

i want to get an accepted

Sample Output

I Like Acm

I Want To Get An Accepted


#include <iostream>

#include <stdio.h>

#include <cstring>

using namespace std;

int main()

{

   int n,i;

   char str[100];

       while(gets(str))

       {n=strlen(str);

       str[0]=str[0]-32;

       for(i=1;i<=n-1;i++)

       {if(str[i-1]=='')

       str[i]=str[i]-32;}

       cout<<str<<endl;}

   return 0;

}

 

       將首字母變大寫,其實只要找到首字母,然後再通過ASCII表進行轉化就可以了。

       這道題主要考察如何找到首字母以及ASCII的合理運用,我們都知道,在英語中,首字母就是一個單詞的第一個字母,而區分是一個單詞還是兩個單詞,就看有沒有空格,所以,必須用gets輸入字符串;

       在查找首字母時,要依次對每個字符進行比較,看是否符合首字母的條件(前面有空格),而一般情況下,一句話的第一個字母都是首字母(這裏不考慮首行縮進,如有要求,可自行修改);

       我們求出來字符串的長度後(n=strlen(str);),先把第一個字母大寫(str[0]=str[0]-32;),要通過ASCII錶轉換,然後從第二個字母開始依次(for(i=1;i<=n-1;i++))對每個字母檢查,符合要求,即前面有空格(if(str[i-1]=='')),就把該字母大寫(str[i]=str[i]-32;);否則不做處理;

       檢查完之後,把轉換後的字符串輸出(cout<<str<<endl;)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章