কম্পিউটার টিউটোরিয়াল

C প্রোগ্রাম: সেন্টেন্সের প্রথম ক্যারেক্টার আপারকেসে রূপান্তর করা

একটি স্ট্রিং দেওয়া থাকলে যেটিতে মিক্সড কেস থাকে, অর্থাৎ আপারকেস এবং লোয়ারকেস দুটোই থাকে, টাস্ক হলো প্রথম ক্যারেক্টারকে আপারকেসে রূপান্তর করা এবং বাকিগুলো লোয়ারকেসে যদি সেগুলো আপারকেসে থাকে।

এটি একটি সহজ উদাহরণ দিয়ে গভীরে বুঝি।

যেমন "hElLo world" স্ট্রিং দেওয়া থাকলে, আমাদের প্রথম ক্যারেক্টার 'h' যা লোয়ারকেসে আছে সেটিকে আপারকেস 'H'-এ রূপান্তর করতে হবে এবং স্পেস বা স্ট্রিং-এর শেষ পর্যন্ত সব লেটারকে লোয়ারকেসে রূপান্তর করতে হবে।

আরো সঠিকভাবে, যখন স্পেসের পর প্রথম ক্যারেক্টার পাব, সেটিকেও আপারকেসে রূপান্তর করতে হবে।

উদাহরণ

ইনপুট: str[] = {"heLlO wORLD"} আউটপুট: Hello World
ইনপুট: str[] = {"sUNIDHi bAnSAL"} আউটপুট: Sunidhi Bansal

নিচে ব্যবহৃত পদ্ধতি −

  • এই সমস্যা সমাধানের জন্য আমরা ক্যারেক্টারগুলোর ASCII ভ্যালু ব্যবহার করব।
  • ASCII মানে American Standards Code for Information Interchange, যার মানে প্রতিটি ক্যারেক্টারের সাথে একটি কোড জড়িত। যেন আপারকেস লেটার A-Z কে ৬৫-৯০ নম্বর দেওয়া হয়েছে এবং লোয়ারকেস a-z কে ৯৭-১২২ নম্বর। আমরা এই ভ্যালুগুলো ব্যবহার করে সমস্যা সমাধান করব।
  • পুরো স্ট্রিং ট্রাভার্স করব, এবং
  • চেক করব যদি প্রথম ক্যারেক্টার অথবা স্পেস ' ' এর পর যেই ক্যারেক্টারটি আসে সেটি a-z রেঞ্জে থাকে তবে 'A' এবং 'a'-র ASCII ভ্যালুর পার্থক্য বিয়োগ করে রেজাল্ট ক্যারেক্টরে যোগ করব।
  • যদি সেটি প্রথম ক্যারেক্টার বা স্পেসের পরের ক্যারেক্টার নয় তবে চেক করব ক্যারেক্টারটি আপারকেসে আছে কিনা, থাকলে লোয়ারকেসে রূপান্তর করতে ক্যারেক্টারের ভ্যালুতে 'a' - 'A' এর পার্থক্য যোগ করব।

অ্যালগরিদম

Start
function int firstupper(char str[], int n) এ
  ধাপ ১ → int i ইনিশিয়ালাইজ
  ধাপ ২ → লুপ: i = 0; i < n; 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
function int main(int argc, char const *argv[]) এ
  ধাপ ১ → char str[] = {"sUNIDHi bAnSAL"} ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ২ → n = sizeof(str)/sizeof(str[0]) সেট
  ধাপ ৩ → firstupper(str, n) কল
  ধাপ ৪ → 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

  1. C#-এ সেন্টেন্সের প্রথম ক্যারেক্টার আপারকেস করা

  2. C#-এ ফারেনহাইট থেকে সেলসিয়াস রূপান্তর

  3. C#-এ ক্যারেক্টার কেস রূপান্তর (Upper/Lower)

  4. C#-এ ইন্টিজারকে স্ট্রিংয়ে রূপান্তর