স্ট্রিং এবং ভোয়েল (Vowel) কনভার্সন
স্ট্রিং হলো ক্যারেক্টার অ্যারে। প্রোগ্রামটি স্ট্রিংয়ের প্রতিটি ক্যারেক্টার চেক করে যদি সেটি ছোট হাতের স্বরবর্ণ (a, e, i, o, u) হয়, তবে সেটিকে বড় হাতের (A, E, I, O, U) কনভার্ট করে।
লজিক
for (i = 0; str[i] != '\0'; i++) {
if (str[i]=='a' || str[i]=='e' || str[i]=='i' || str[i]=='o' || str[i]=='u')
str[i] = toupper(str[i]); // ctype.h থেকে
}
প্রোগ্রাম (ctype.h ব্যবহার করে)
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // newline হ্রাস
for (i = 0; str[i] != '\0'; i++) {
if (str[i]=='a' || str[i]=='e' || str[i]=='i' || str[i]=='o' || str[i]=='u')
str[i] = toupper(str[i]);
}
printf("Result: %s\n", str);
return 0;
}
আউটপুট
Run 1: Enter a string: TutoRialsPoint Result: TUtORIAlsPOInt Run 2: Enter a string: c programming Result: c programming (কোনো ছোট হাতের স্বরবর্ণ নেই)
উন্নত সংস্করণ: উভয়দিকে কনভার্সন
বড় হাতের স্বরবর্ণকে ছোট হাতের, ছোট হাতেরকে বড় হাতের করতে:
#include <stdio.h>
#include <ctype.h>
int is_vowel(char c) {
c = tolower(c);
return (c=='a' || c=='e' || c=='i' || c=='o' || c=='u');
}
int main() {
char str[100];
int i;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
for (i = 0; str[i]; i++) {
if (is_vowel(str[i])) {
if (islower(str[i])) str[i] = toupper(str[i]);
else str[i] = tolower(str[i]);
}
}
printf("Converted: %s\n", str);
return 0;
}
নোট
gets()ব্যবহার করবেন না —fgets()ব্যবহার করুন।ctype.h-এরtoupper/tolowerলোকেল-সচেতন এবং সুরক্ষিত।- ASCII-ভিত্তিক হার্ডকোডিং (
+32,-32) এড়িয়ে চলুন।