Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 문장의 첫 문자를 대문자로 변환하는 프로그램

<시간/>

문자열과 대소문자가 혼합된 경우(즉, 대문자와 소문자가 모두 포함된 경우) 작업은 대문자인 경우 첫 번째 문자를 소문자로 바꾸는 것입니다.

간단한 예를 통해 깊이 이해해 봅시다.

"hElLo world"라는 문자열이 주어진 것처럼 첫 번째 문자 'h'는 소문자인 'H'로 변환하고 공백이나 문자열 끝 앞의 모든 문자는 소문자로 바꿔야 합니다.

또한 공백 다음에 첫 번째 문자를 만나면 대문자로 변환해야 합니다.

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

아래에 사용된 접근 방식은 다음과 같습니다. -

  • 이 문제를 해결하기 위해 문자의 ASCII 값을 사용합니다.
  • ASCII는 American Standards Code for Information Interchange의 약자로 모든 문자에 관련된 코드가 있음을 의미합니다. 대문자 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\n", 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\n", str);
   return 0;
}

출력

Sunidhi Bansal