C程式:將句子首字母轉換為大寫


給定一個大小寫混合的字串,任務是將第一個字元轉換為大寫,其餘大寫字母轉換為小寫。

讓我們透過一個簡單的例子深入瞭解。

例如,給定字串“hElLo world”,我們需要將第一個字元'h'(小寫)轉換為大寫'H',並將空格前或字串末尾的所有其他字母轉換為小寫。

此外,當我們遇到空格後的第一個字元時,需要將其轉換為大寫。

示例

Input: str[] = {“heLlO wORLD”}
Output: Hello World
Input: str[] = {"sUNIDHi bAnSAL"}
Output: Sunidhi Bansal

以下使用的方案如下

  • 為了解決這個問題,我們將使用字元的ASCII值。
  • ASCII代表美國資訊交換標準程式碼,這意味著每個字元都有一些與其關聯的程式碼。例如,大寫字母A-Z的數值範圍為65-90,小寫字母a-z的數值範圍為97-122。因此,我們將使用這些值來解決我們的問題。
  • 我們將遍歷整個字串,
  • 檢查第一個字元或空格“ ”後的第一個字元是否在a-z範圍內,然後我們將減去'A'和'a'的ASCII值,然後將結果新增到字元中。
  • 如果它不是第一個字元或空格後的字元,則需要檢查該字元是否為大寫,然後將其轉換為小寫,並將該字元的值新增到'a'-'A'的減法結果中。

演算法

Start
In Function int firstupper(char str[], int n)
   Step 1-> Initialize int i
   Step 2-> Loop For i = 0 And i<n And i++
      If i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ' then,
         If str[i] >= 'a' && str[i]<='z' then,
            str[i] = (char)(('A'-'a') + str[i] )
         End If
         Else If str[i] >= 'A' && str[i] <= 'Z' then,
            str[i] = (char)(str[i] + ('a' - 'A'))
         End If
      End Function
In Function int main(int argc, char const *argv[])
   Step 1-> Declare and initialize char str[] = {"sUNIDHi bAnSAL"}
   Step 2-> Declare n set as sizeof(str)/sizeof(str[0])
   Step 3-> firstupper(str, n)
   Step 4-> Print "%s
", str End main

示例

 線上演示

#include <stdio.h>
int firstupper(char str[], int n) {
   int i;
   for(i = 0; i<n; i++) {
      if (i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ') {
         if(str[i] >= 'a' && str[i]<='z') {
            str[i] = (char)(('A'-'a') + str[i] );
         }
      } else if (str[i] >= 'A' && str[i] <= 'Z') {
         str[i] = (char)(str[i] + ('a' - 'A'));
      }
   }
   return 0;
}
int main(int argc, char const *argv[]) {
   char str[] = {"sUNIDHi bAnSAL"};
   int n = sizeof(str)/sizeof(str[0]);
   firstupper(str, n);
   printf("%s
", str);    return 0; }

輸出

Sunidhi Bansal

更新於: 2019年10月18日

3K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.