Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แปลงอักขระของสตริงเป็นตัวพิมพ์ตรงข้ามใน C++


เราได้รับสตริงที่มีความยาวเท่าใดก็ได้ และงานคือการแปลงสตริงที่มีอักษรตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก และตัวพิมพ์เล็กเป็นอักษรตัวพิมพ์ใหญ่

ตัวอย่าง

ป้อนข้อมูล − 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?