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

พิมพ์ตัวอักษรซ้ำ n ครั้งโดยไม่ใช้ลูป Recursion หรือ Goto ใน C++

สามารถพิมพ์ตัวอักษรซ้ำหลายครั้งได้อย่างง่ายดายด้วยคอนสตรัคเตอร์ของคลาส std::string โดยไม่ต้องใช้ลูป Recursion หรือ Goto

หลักการ

std::string มีคอนสตรัคเตอร์ที่รับพารามิเตอร์ 2 ค่า:

string(count, character)
  • count: จำนวนครั้งที่ต้องการซ้ำ
  • character: ตัวอักษรที่ต้องการพิมพ์

ตัวอย่างโค้ด

#include <iostream>
#include <string>

using namespace std;

void printCharNTimes(char ch, int count) {
    if (count > 0) {
        cout << string(count, ch) << endl;
    }
}

int main() {
    // พิมพ์ 'B' 10 ครั้ง
    printCharNTimes('B', 10);
    
    // พิมพ์ 'x' 30 ครั้ง
    printCharNTimes('x', 30);
    
    // ตัวอย่างเพิ่มเติม: สร้างเส้นคั่น
    cout << string(50, '-') << endl;
    cout << "Header" << endl;
    cout << string(50, '-') << endl;
    
    return 0;
}

ผลลัพธ์

BBBBBBBBBB
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
--------------------------------------------------
Header
--------------------------------------------------

การประยุกต์ใช้เพิ่มเติม

// สร้างสตริงซ้ำหลายรูปแบบ
string spaces(10, ' ');        // เว้นวรรค 10 ช่อง
string stars(5, '*');          // ดาว 5 ดวง
string line(80, '=');          // เส้นคั่นยาว 80 ตัว

// ใช้กับอักขระหลายไบต์ (ต้องระวัง encoding)
string thai(3, 'า');           // สระอา 3 ตัว (อาจไม่ทำงานถ้าต้องการพิมพ์ "ซ้ำ 3 ตัวอักษร")

ข้อดีของวิธีนี้

  • กระชับ: เขียนได้ในบรรทัดเดียว
  • ประสิทธิภาพ: ถูก optimize ดีในไลบรารีมาตรฐาน
  • อ่านง่าย: แสดงเจตนาชัดเจน
  • ปลอดภัย: ไม่มีความเสี่ยง infinite loop

ข้อจำกัด

ใช้ได้เฉพาะตัวอักษรเดี่ยว (single character) หากต้องการพิมพ์สตริงซ้ำ ต้องใช้วิธีอื่น เช่น ลูปหรือ std::string join