เราได้รับสตริงที่มีความยาวเท่าใดก็ได้ และงานคือการแปลงสตริงที่มีอักษรตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก และตัวพิมพ์เล็กเป็นอักษรตัวพิมพ์ใหญ่
ตัวอย่าง
ป้อนข้อมูล − 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?