C++ ประเภทข้อมูล Char พร้อมตัวอย่าง

ชาร์คืออะไร?

ชาร์เป็น C++ ประเภทข้อมูลที่ออกแบบมาสำหรับการจัดเก็บตัวอักษร Char เป็นคำย่อของอักขระตัวเลขและตัวอักษร เป็นประเภทข้อมูลจำนวนเต็ม ซึ่งหมายความว่าค่าจะถูกเก็บเป็นจำนวนเต็ม char มีหน่วยความจำขนาด 1 ไบต์ นอกจากนี้ยังเก็บอักขระตัวเดียวอีกด้วย

ASCII คืออะไร?

ค่า char จะถูกตีความว่าเป็นอักขระ ASCII ซึ่งคล้ายกับวิธีการตีความค่าบูลีนว่าเป็นจริงหรือเท็จ ASCII เป็นตัวย่อของรหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล โดยจะกำหนดวิธีเฉพาะในการแสดงอักขระภาษาอังกฤษเป็นตัวเลข

ตัวเลขจะมีช่วงระหว่าง 0 ถึง 127 ตัวอย่างเช่น อักขระ "a" เทียบเท่ากับรหัส ASCII 97

คำประกาศชาร์

เพื่อประกาศก ตัวแปรถ่านเข้า C++เราใช้คีย์เวิร์ด char ควรตามด้วยชื่อของตัวแปร ตัวแปรสามารถเริ่มต้นได้ในเวลาที่มีการประกาศ ค่าของตัวแปรควรอยู่ในเครื่องหมายคำพูดเดี่ยว

วากยสัมพันธ์

นี่คือไวยากรณ์สำหรับการประกาศถ่าน C++:

char variable-name;

ชื่อตัวแปรคือชื่อที่จะกำหนดให้กับตัวแปร

หากมีการกำหนดค่าในขณะที่ประกาศ คุณสามารถใช้ไวยากรณ์นี้ได้:

char variable-name = 'value';	
  • ชื่อตัวแปรคือชื่อของตัวแปรถ่าน
  • ค่าคือค่าที่จะกำหนดให้กับตัวแปรถ่าน

1 ตัวอย่าง:

#include <iostream>
using namespace std;
int main() {
	char grade = 'B';
	cout << "I scored a: "<<grade;
	return 0;
}

Output:

คำประกาศชาร์

นี่คือภาพหน้าจอของรหัส:

คำประกาศชาร์

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  4. ประกาศตัวแปรอักขระชื่อเกรด ตัวแปรยังได้รับการกำหนดค่าเป็น B โปรดสังเกตว่าค่าของตัวแปรนั้นอยู่ในเครื่องหมายคำพูดเดี่ยว
  5. พิมพ์ค่าของเกรดตัวแปรควบคู่ไปกับข้อความอื่นๆ บนคอนโซล
  6. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  7. ส่วนท้ายของฟังก์ชัน main()

การพิมพ์ค่า ASCII

ตามที่ระบุไว้ข้างต้น อักขระแต่ละตัวจะถูกตีความว่าเป็นอักขระ ASCII เป็นไปได้ที่คุณจะรับค่า ASCII ของอักขระใดๆ คุณเพียงแค่ส่งอักขระไปยังฟังก์ชัน int() กระบวนการนี้เรียกว่าการหล่อแบบ มาสาธิตสิ่งนี้กัน:

2 ตัวอย่าง:

#include <iostream>
using namespace std;
int main() {
	char ch;
	cout << "Enter any character: ";
	cin >> ch;
	cout << "The ASCII Value of " << ch << " is " << int(ch);
	return 0;
}

Output:

การพิมพ์ค่า ASCII

นี่คือภาพหน้าจอของรหัส:

การพิมพ์ค่า ASCII

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  4. ประกาศตัวแปรถ่านชื่อ ch
  5. พิมพ์ข้อความบนคอนโซล ข้อความขอให้ผู้ใช้ป้อนค่าสำหรับตัวแปร ch
  6. อ่านอินพุตของผู้ใช้จากแป้นพิมพ์และจัดเก็บไว้ในตัวแปร ch
  7. พิมพ์ข้อความบนคอนโซล ข้อความจะประกอบด้วยอักขระที่คุณป้อนสำหรับตัวแปร ch ค่า ASCII ของอักขระนี้ และข้อความอื่นๆ
  8. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  9. ส่วนท้ายของฟังก์ชัน main()

การพิมพ์ค่าถ่าน

เมื่อพิจารณาค่า ASCII จะได้ว่า C++ คอมไพเลอร์สามารถส่งคืนอักขระที่เกี่ยวข้องได้ คุณประกาศตัวแปรถ่านและกำหนดค่าจำนวนเต็มให้กับมัน มันจะถูกแปลงเป็นค่าอักขระที่เกี่ยวข้อง

3 ตัวอย่าง:

#include <iostream>
using namespace std;
int main() {
	char x = 64, y = 66, z = 71;
	cout << x;
	cout << y;
	cout << z;
	return 0;
}

Output:

การพิมพ์ค่าถ่าน

นี่คือภาพหน้าจอของรหัส:

การพิมพ์ค่าถ่าน

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ลงในโค้ด จากนั้นเราจะใช้ฟังก์ชันของมันโดยไม่ได้รับข้อผิดพลาด
  2. รวมเนมสเปซมาตรฐานลงในโค้ด เราจะใช้คลาสของมันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ตรรกะของโปรแกรมควรอยู่ในเนื้อหาของฟังก์ชันนี้
  4. ประกาศตัวแปรถ่านสามตัว x, y และ z ทั้งสามได้รับการกำหนดค่าจำนวนเต็ม 65, 66 และ 67 สิ่งเหล่านี้จะถือเป็นค่า ASCII สำหรับอักขระ
  5. พิมพ์ค่าของตัวแปร x บนคอนโซล เนื่องจาก x ถูกประกาศเป็นถ่าน ดังนั้นถ่านที่มีค่า ASCII เท่ากับ 65 จะถูกส่งคืน นั่นคือ A
  6. พิมพ์ค่าของตัวแปร y บนคอนโซล เนื่องจาก y ถูกประกาศให้เป็นถ่าน ดังนั้นถ่านที่มีค่า ASCII เท่ากับ 66 จะถูกส่งคืน นั่นคือ B
  7. พิมพ์ค่าของตัวแปร z บนคอนโซล เนื่องจาก z ถูกประกาศให้เป็นอักขระ ดังนั้นอักขระที่มีค่า ASCII เท่ากับ 67 จะถูกส่งคืน นั่นคือ C
  8. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  9. ส่วนท้ายของฟังก์ชัน main()

การป้อนตัวอักษร

เราสามารถใช้ฟังก์ชัน std::cin เพื่ออ่าน char ที่ผู้ใช้ป้อนผ่านแป้นพิมพ์ได้ std::cin ช่วยให้คุณสามารถป้อนอักขระได้หลายตัว อย่างไรก็ตาม ตัวแปร character สามารถเก็บอักขระได้เพียงตัวเดียว ซึ่งหมายความว่าจะแยกและเก็บเฉพาะอักขระแรกที่ป้อนเท่านั้นในตัวแปร character ส่วนที่เหลือจะยังคงอยู่ในบัฟเฟอร์ที่ใช้โดย std::cin หากต้องการแยกอักขระ ให้เรียกใช้ std::cin ในภายหลัง

4 ตัวอย่าง:

#include <iostream>
using namespace std;
int main() {
	cout << "Type a sequence of characters: "; 
	char ch;
	cin >> ch; 
	cout <<"The ASCII code of "<< ch << " is "<< int(ch) << '\n';
	cin >> ch; 
	cout <<"The ASCII code of " << ch << " is "<< int(ch) << '\n';
	return 0;
}

Output:

การป้อนตัวอักษร

นี่คือภาพหน้าจอของรหัส:

การป้อนตัวอักษร

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  4. พิมพ์ข้อความบนคอนโซล
  5. ประกาศตัวแปรอักขระชื่อ ch
  6. อ่านอินพุตของผู้ใช้จากแป้นพิมพ์ อินพุตจะถูกเก็บไว้ในตัวแปร ch เนื่องจากผู้ใช้จะพิมพ์ลำดับอักขระเช่น abc เฉพาะอักขระตัวแรก a เท่านั้นที่จะถูกเก็บไว้ในตัวแปร ch
  7. การพิมพ์อักขระตัวแรกที่ป้อน รหัส ASCII และข้อความอื่นๆ บนคอนโซล รหัส ASCII ถูกกำหนดโดยการส่งตัวแปรอักขระไปยังฟังก์ชัน int()
  8. อ่านอักขระถัดไปที่ผู้ใช้ป้อน ผู้ใช้ไม่จำเป็นต้องป้อนอักขระใหม่ มันจะอ่านอักขระตัวที่สองที่ป้อนแทนนั่นคือข
  9. การพิมพ์อักขระตัวที่สองที่ป้อน รหัส ASCII และข้อความอื่น ๆ บนคอนโซล รหัส ASCII ถูกกำหนดโดยการส่งตัวแปรอักขระไปยังฟังก์ชัน int()
  10. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  11. ส่วนท้ายของฟังก์ชัน main()

การแปลงอักขระเป็นสตริง

มีหลายวิธีที่เราสามารถใช้เพื่อแปลงอักขระเป็นได้ เงื่อนไข.

มาคุยกัน:

#1: การใช้ Constructor ที่กำหนดโดย String Class

สามารถทำได้โดยใช้รูปแบบต่อไปนี้:

string st(int n,char x);

พารามิเตอร์ n หมายถึงขนาดของสตริงที่จะถูกสร้างขึ้น

พารามิเตอร์ x คืออักขระที่จะแปลงเป็นสตริง

ฟังก์ชันส่งคืนสตริง

5 ตัวอย่าง:

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st(1, 'C');
	cout << "The resulting string is : " << st;
	return 0;
}

Output:

การแปลงอักขระเป็นสตริง

นี่คือภาพหน้าจอของรหัส:

การแปลงอักขระเป็นสตริง

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  3. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  4. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  5. แปลงอักขระ “C” ให้เป็นสตริงความยาว 1 และกำหนดสตริงผลลัพธ์ให้กับตัวแปร st
  6. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น
  7. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  8. ส่วนท้ายของฟังก์ชัน main()

#2) การใช้ std::string Operaทอร์ = และ +=

ตัวดำเนินการ = และ += มีอักขระมากเกินไปอยู่แล้ว ทั้งสองตัวสามารถใช้แปลงอักขระเฉพาะเป็นสตริงได้

6 ตัวอย่าง:

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st;
	char b = 'B';
	st = 'A';
	st += b;
	cout << "The resulting string is : " << st;
	return 0;
}

Output:

การแปลงอักขระเป็นสตริง

นี่คือภาพหน้าจอของรหัส:

การแปลงอักขระเป็นสตริง

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  3. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  4. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  5. สร้างตัวแปรสตริงชื่อ st
  6. สร้างตัวละครชื่อ b ด้วยค่า B
  7. กำหนดค่า A ให้กับสตริงชื่อ st
  8. ใช้ตัวดำเนินการ += เพื่อแปลงอักขระให้เป็นสตริง
  9. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น
  10. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  11. ส่วนท้ายของฟังก์ชัน main()

#3: การใช้ std::string วิธีการ

คลาส std::string มาพร้อมกับฟังก์ชันโอเวอร์โหลดมากมายที่สามารถช่วยคุณแปลงอักขระให้เป็นสตริงได้

พวกเขารวมถึง:

  • ผลักดัน_กลับ ฟังก์ชันนี้กำหนดอักขระเฉพาะให้กับจุดสิ้นสุดของสตริง โดยจะโอเวอร์โหลดอักขระ โดยใช้รูปแบบต่อไปนี้:
    void push_back(char ch)
    

    พารามิเตอร์ ch คืออักขระที่จะเปลี่ยนเป็นสตริง

  • ผนวก ฟังก์ชันนี้จะกำหนดสำเนาอักขระหนึ่งๆ จำนวนมากให้กับสตริง โดยฟังก์ชันนี้มีรูปแบบดังต่อไปนี้:
    string& append(size_t n,char ch)
    

    พารามิเตอร์ n หมายถึงเวลาที่อักขระจะถูกต่อท้าย

    พารามิเตอร์ ch คืออักขระที่จะต่อท้ายสตริง

  • กำหนด ฟังก์ชันนี้จะแทนที่เนื้อหาปัจจุบันของสตริงด้วยสำเนา n ของอักขระที่ระบุ โดยใช้รูปแบบต่อไปนี้:
    string& assign(size_t n,char ch);

    พารามิเตอร์ n หมายถึงสำเนาทั้งหมดสำหรับอักขระ

    พารามิเตอร์ ch คืออักขระที่จะคัดลอกลงในสตริง

  • แทรก ฟังก์ชัน insert จะแทรกอักขระจำนวน n ตัวที่ตำแหน่งเริ่มต้นของสตริงตามที่ระบุในอาร์กิวเมนต์ โดยใช้รูปแบบต่อไปนี้:
    string& insert(size_t p,size_t n,char ch);

    พารามิเตอร์ p แสดงถึงตำแหน่งจากจุดเริ่มต้นที่จะแทรกอักขระ

    พารามิเตอร์ n หมายถึงสำเนาทั้งหมดสำหรับอักขระ

    พารามิเตอร์ ch คืออักขระที่จะแทรกในสตริง

7 ตัวอย่าง:

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st;
	st.push_back('A');
	cout << "push_back A returns : " << st << endl;
	st = "";
	st.append(1, 'C');
	cout << "append C returns : " << st << endl;
	st = "";
	st.assign(1, 'D');
	cout << "assign D returns : " << st << endl;
	st.insert(0, 1, 'E');
	cout << "insert single character returns : " << st << endl;
	return 0;
}

Output:

การแปลงอักขระเป็นสตริง

นี่คือภาพหน้าจอของรหัส:

การแปลงอักขระเป็นสตริง

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  3. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  4. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  5. สร้างตัวแปรสตริงชื่อ st
  6. กำหนดอักขระ A ที่ส่วนท้ายของสตริง
  7. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
  8. ตั้งค่าของสตริง st ให้ว่างเปล่า
  9. กำหนดอักขระตัวเดียว C ให้กับสตริงชื่อ st
  10. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
  11. ตั้งค่าของสตริง st ให้ว่างเปล่า
  12. แทนที่เนื้อหาสำหรับ string st ด้วยอักขระตัวเดียว D
  13. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
  14. แทรกอักขระตัวเดียว E ลงในสตริงชื่อ st จากดัชนีแรก
  15. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
  16. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  17. ส่วนท้ายของฟังก์ชัน main()

#4: การใช้ std::stringstream

หากต้องการใช้คลาสนี้เพื่อแปลงอักขระเป็นสตริง ให้แทรกอักขระลงในสตรีม

พวกมันจะถูกเขียนลงในสตริง

8 ตัวอย่าง:

#include<iostream>
#include <string>
#include <sstream>

using namespace std;
int main() {

	string st;

	stringstream myst;

	myst << 'A'; 
	myst >> st;

	cout << "The conversion of the single character returns the string: " << st;

	return 0;
}

Output:

การแปลงอักขระเป็นสตริง

นี่คือภาพหน้าจอของรหัส:

การแปลงอักขระเป็นสตริง

คำอธิบายรหัส:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  2. รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  3. รวมไฟล์ส่วนหัว sstream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
  4. รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
  5. การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
  6. สร้างตัวแปรสตริงชื่อ st
  7. สร้างตัวแปรกระแสชื่อ myst
  8. แทรกอักขระ A ลงในวัตถุสตรีมชื่อ myst
  9. แปลงวัตถุสตรีมให้เป็นสตริง
  10. พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
  11. โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
  12. ส่วนท้ายของฟังก์ชัน main()

สรุป

  • ถ่านคือก C++ ชนิดข้อมูลที่ใช้จัดเก็บตัวอักษร
  • C++ Char เป็นชนิดข้อมูลอินทิกรัล ซึ่งหมายความว่าค่าจะถูกจัดเก็บเป็นจำนวนเต็ม
  • มันกินพื้นที่หน่วยความจำขนาด 1 ไบต์
  • C++ Char เก็บเฉพาะอักขระตัวเดียวเท่านั้น
  • ค่าถ่านจะถูกตีความว่าเป็นอักขระ ASCII
  • ASCII เป็นตัวย่อสำหรับรหัส American Standard สำหรับการแลกเปลี่ยนข้อมูล
  • ระบุวิธีเฉพาะในการแสดงอักขระภาษาอังกฤษในรูปแบบตัวเลข
  • หากต้องการดูค่า ASCII ของอักขระ เราจะส่งค่าดังกล่าวไปยังฟังก์ชัน int()
  • หากต้องการดูค่าถ่านที่สอดคล้องกันของค่า ASCII เราจะกำหนดให้ ASCII เป็นอักขระ