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

การสลับสระและพยัญชนะในภาษา C/C++


รับสตริงอินพุตที่มีสระและพยัญชนะ จัดเรียงสตริงใหม่เพื่อให้เสียงสระและพยัญชนะอยู่ในตำแหน่งอื่นในสตริงสุดท้าย ขณะที่เรากำลังจัดเรียงสระและพยัญชนะในตำแหน่งอื่น สตริงอินพุตต้องเป็นไปตามเงื่อนไขอย่างใดอย่างหนึ่งต่อไปนี้ -

  • จำนวนสระและพยัญชนะต้องเท่ากัน เช่น สตริง "individual" มี 5 สระและ 5 พยัญชนะ

  • ถ้าจำนวนสระมากกว่า ความแตกต่างระหว่างจำนวนสระและจำนวนพยัญชนะจะต้องเท่ากับ 1 เช่น สตริง "noe" มี 2 สระและ 1 พยัญชนะ

  • ถ้าจำนวนพยัญชนะมากกว่า ความแตกต่างระหว่างจำนวนพยัญชนะและจำนวนสระจะต้องเท่ากับ 1 เช่น สตริง "objective" มีเสียงสระ 4 ตัว พยัญชนะ 5 ตัว

อัลกอริทึม

<ก่อน>1. นับจำนวนสระ2. นับจำนวนพยัญชนะ3. ถ้าความแตกต่างระหว่างจำนวนสระและพยัญชนะหรือกลับกันมากกว่า 1 ให้ส่งกลับข้อผิดพลาด4 แยกสตริงอินพุตออกเป็นสองส่วน:a) สตริงแรกประกอบด้วยสระเท่านั้น b) สตริงที่สองประกอบด้วยพยัญชนะเท่านั้น5 หากจำนวนพยัญชนะและสระเท่ากัน ให้สร้างสตริงสุดท้ายโดยเลือกอักขระจากแต่ละสตริงหรืออีกวิธีหนึ่ง ถ้าจำนวนสระมากกว่าพยัญชนะ ให้:a) รวมสระเพิ่มเติมในสตริงสุดท้ายเพื่อให้ทั้งสองสตริงมีความยาวเท่ากัน b) สร้างสตริงสุดท้ายโดยต่อท้ายอักขระจากแต่ละสตริงหรือ7 หากจำนวนพยัญชนะมากกว่าสระ ก) รวมพยัญชนะเพิ่มเติมในสตริงสุดท้ายเพื่อทำให้ทั้งสองสายอักขระมีความยาวเท่ากัน b) สร้างสตริงสุดท้ายโดยต่อท้ายอักขระจากแต่ละสตริงหรือ

ตัวอย่าง

#include #include using เนมสเปซ std;bool is_vowel(char ch) { if (ch =='a' || ch =='e' || ch =='i' || ch =='o' || ch =='u') { คืนค่าจริง; } return false;} string create_final_string (สตริง &s1, สตริง &s2, int start, int end) { string final_string; สำหรับ (int i =0, j =start; j =2) { cerr <<"String ไม่สามารถเกิดขึ้นได้ด้วยการสลับสระและพยัญชนะ\n"; ทางออก(1); } if ((consonant_cnt - vowel_cnt) ==0) { return create_final_string(vowel_str, consonant_str, 0, vowel_cnt); } else if (vowel_cnt> consonant_cnt) { return vowel_str.at(0) + create_final_string(consonant_str,vowel_str, 1, vowel_cnt); } ส่งคืน consonant_str.at (0) + create_final_string (vowel_str, consonant_str, 1, consonant_cnt);}int main () { string s1 ="individual"; สตริง s2 ="ไม่"; สตริง s3 ="วัตถุประสงค์"; cout <<"อินพุต :" < 

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโค้ดด้านบน มันจะสร้างเอาต์พุตต่อไปนี้ -

อินพุต :แต่ละเอาต์พุต:inidivudalInput :noeOutput:oneInput :วัตถุประสงค์Output:bojecitev