เราได้รับสตริงที่มีความยาวเท่าใดก็ได้ และงานคือการแปลงสตริงที่มีอักษรตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก และตัวพิมพ์เล็กเป็นอักษรตัวพิมพ์ใหญ่
ตัวอย่าง
ป้อนข้อมูล − string str =”ยินดีต้อนรับสู่ไซต์!”
ผลผลิต − ยินดีต้อนรับสู่เว็บไซต์!
คำอธิบาย - แปลงตัวอักษร W, T, T, S เป็นตัวพิมพ์เล็ก และตัวอักษร e,l,c,o,m,e,o,,i,t,e เป็นตัวพิมพ์ใหญ่และจะไม่ดำเนินการใด ๆ กับอักขระพิเศษ
ป้อนข้อมูล − string str =”สวัสดี”
ผลผลิต − สวัสดี
คำอธิบาย − แปลงตัวอักษร H,E,L,L,E เป็นตัวพิมพ์เล็ก
สามารถทำได้โดยใช้สองวิธีที่แตกต่างกัน
-
การใช้ฟังก์ชัน inbuilt ที่จัดเตรียมโดย C ++ เพื่อดำเนินการเหล่านี้และ aretoLowerCase(char) และ toUpperCase(char) เหล่านั้น
-
ผ่านตรรกะที่เรากำลังดำเนินการในโปรแกรมด้านล่าง
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนสตริงที่มีความยาวเท่าใดก็ได้
-
คำนวณความยาวของสตริงโดยใช้ฟังก์ชัน length() ที่จะคืนค่าจำนวนเต็มตามจำนวนตัวอักษรในสตริงรวมทั้งช่องว่าง
-
ค่า ASCII ของตัวอักษรพิมพ์ใหญ่[A-Z] เริ่มต้นด้วย 65 ถึง 90 และตัวอักษรพิมพ์เล็ก[a-z] เริ่มต้นด้วย 97 ถึง 122
-
เริ่มการวนซ้ำซึ่งจะเปรียบเทียบแต่ละตัวอักษรในสตริง หากตัวอักษรเป็นตัวพิมพ์ใหญ่ ให้เพิ่ม 32 เพื่อแปลงเป็นตัวพิมพ์เล็ก และหากตัวอักษรเป็นตัวพิมพ์เล็ก ให้ลบ 32 เพื่อแปลงเป็นตัวพิมพ์ใหญ่
-
พิมพ์สตริง
ตัวอย่าง
#include<iostream>
using namespace std;
void Convert_case(string &str){
//calculate the length of a string
int len = str.length();
//converting lowercase to uppercase and vice versa
for (int i=0; i<len; i++){
if (str[i]>='a' && str[i]<='z'){
str[i] = str[i] - 32;
}
else if(str[i]>='A' && str[i]<='Z'){
str[i] = str[i] + 32;
}
}
}
int main(){
string str = "What’s Your Name?";
cout<<"String before conversion is: "<<str;
Convert_case(str);
cout<<"\nString after conversion is: "<<str;
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
String before conversion is − What’s Your Name? String after conversion is &mius; wHAT’S yOUR nAME?