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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- ประกาศตัวแปรอักขระชื่อเกรด ตัวแปรยังได้รับการกำหนดค่าเป็น B โปรดสังเกตว่าค่าของตัวแปรนั้นอยู่ในเครื่องหมายคำพูดเดี่ยว
- พิมพ์ค่าของเกรดตัวแปรควบคู่ไปกับข้อความอื่นๆ บนคอนโซล
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- ประกาศตัวแปรถ่านชื่อ ch
- พิมพ์ข้อความบนคอนโซล ข้อความขอให้ผู้ใช้ป้อนค่าสำหรับตัวแปร ch
- อ่านอินพุตของผู้ใช้จากแป้นพิมพ์และจัดเก็บไว้ในตัวแปร ch
- พิมพ์ข้อความบนคอนโซล ข้อความจะประกอบด้วยอักขระที่คุณป้อนสำหรับตัวแปร ch ค่า ASCII ของอักขระนี้ และข้อความอื่นๆ
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ลงในโค้ด จากนั้นเราจะใช้ฟังก์ชันของมันโดยไม่ได้รับข้อผิดพลาด
- รวมเนมสเปซมาตรฐานลงในโค้ด เราจะใช้คลาสของมันโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ตรรกะของโปรแกรมควรอยู่ในเนื้อหาของฟังก์ชันนี้
- ประกาศตัวแปรถ่านสามตัว x, y และ z ทั้งสามได้รับการกำหนดค่าจำนวนเต็ม 65, 66 และ 67 สิ่งเหล่านี้จะถือเป็นค่า ASCII สำหรับอักขระ
- พิมพ์ค่าของตัวแปร x บนคอนโซล เนื่องจาก x ถูกประกาศเป็นถ่าน ดังนั้นถ่านที่มีค่า ASCII เท่ากับ 65 จะถูกส่งคืน นั่นคือ A
- พิมพ์ค่าของตัวแปร y บนคอนโซล เนื่องจาก y ถูกประกาศให้เป็นถ่าน ดังนั้นถ่านที่มีค่า ASCII เท่ากับ 66 จะถูกส่งคืน นั่นคือ B
- พิมพ์ค่าของตัวแปร z บนคอนโซล เนื่องจาก z ถูกประกาศให้เป็นอักขระ ดังนั้นอักขระที่มีค่า ASCII เท่ากับ 67 จะถูกส่งคืน นั่นคือ C
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- พิมพ์ข้อความบนคอนโซล
- ประกาศตัวแปรอักขระชื่อ ch
- อ่านอินพุตของผู้ใช้จากแป้นพิมพ์ อินพุตจะถูกเก็บไว้ในตัวแปร ch เนื่องจากผู้ใช้จะพิมพ์ลำดับอักขระเช่น abc เฉพาะอักขระตัวแรก a เท่านั้นที่จะถูกเก็บไว้ในตัวแปร ch
- การพิมพ์อักขระตัวแรกที่ป้อน รหัส ASCII และข้อความอื่นๆ บนคอนโซล รหัส ASCII ถูกกำหนดโดยการส่งตัวแปรอักขระไปยังฟังก์ชัน int()
- อ่านอักขระถัดไปที่ผู้ใช้ป้อน ผู้ใช้ไม่จำเป็นต้องป้อนอักขระใหม่ มันจะอ่านอักขระตัวที่สองที่ป้อนแทนนั่นคือข
- การพิมพ์อักขระตัวที่สองที่ป้อน รหัส ASCII และข้อความอื่น ๆ บนคอนโซล รหัส ASCII ถูกกำหนดโดยการส่งตัวแปรอักขระไปยังฟังก์ชัน int()
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- แปลงอักขระ “C” ให้เป็นสตริงความยาว 1 และกำหนดสตริงผลลัพธ์ให้กับตัวแปร st
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- สร้างตัวแปรสตริงชื่อ st
- สร้างตัวละครชื่อ b ด้วยค่า B
- กำหนดค่า A ให้กับสตริงชื่อ st
- ใช้ตัวดำเนินการ += เพื่อแปลงอักขระให้เป็นสตริง
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- สร้างตัวแปรสตริงชื่อ st
- กำหนดอักขระ A ที่ส่วนท้ายของสตริง
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- ตั้งค่าของสตริง st ให้ว่างเปล่า
- กำหนดอักขระตัวเดียว C ให้กับสตริงชื่อ st
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- ตั้งค่าของสตริง st ให้ว่างเปล่า
- แทนที่เนื้อหาสำหรับ string st ด้วยอักขระตัวเดียว D
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- แทรกอักขระตัวเดียว E ลงในสตริงชื่อ st จากดัชนีแรก
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน 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:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมไฟล์ส่วนหัวของสตริงในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมไฟล์ส่วนหัว sstream ไว้ในโค้ดของเราเพื่อใช้ฟังก์ชันต่างๆ
- รวมเนมสเปซมาตรฐานไว้ในโค้ดของเราเพื่อใช้คลาสโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ควรเพิ่มตรรกะของโปรแกรมภายในเนื้อหาของฟังก์ชันนี้
- สร้างตัวแปรสตริงชื่อ st
- สร้างตัวแปรกระแสชื่อ myst
- แทรกอักขระ A ลงในวัตถุสตรีมชื่อ myst
- แปลงวัตถุสตรีมให้เป็นสตริง
- พิมพ์ค่าของสตริง st บนคอนโซลควบคู่ไปกับข้อความอื่น endl (บรรทัดสิ้นสุด) เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- โปรแกรมจะต้องคืนค่าเมื่อเสร็จสิ้นสำเร็จ
- ส่วนท้ายของฟังก์ชัน main()
สรุป
- ถ่านคือก C++ ชนิดข้อมูลที่ใช้จัดเก็บตัวอักษร
- C++ Char เป็นชนิดข้อมูลอินทิกรัล ซึ่งหมายความว่าค่าจะถูกจัดเก็บเป็นจำนวนเต็ม
- มันกินพื้นที่หน่วยความจำขนาด 1 ไบต์
- C++ Char เก็บเฉพาะอักขระตัวเดียวเท่านั้น
- ค่าถ่านจะถูกตีความว่าเป็นอักขระ ASCII
- ASCII เป็นตัวย่อสำหรับรหัส American Standard สำหรับการแลกเปลี่ยนข้อมูล
- ระบุวิธีเฉพาะในการแสดงอักขระภาษาอังกฤษในรูปแบบตัวเลข
- หากต้องการดูค่า ASCII ของอักขระ เราจะส่งค่าดังกล่าวไปยังฟังก์ชัน int()
- หากต้องการดูค่าถ่านที่สอดคล้องกันของค่า ASCII เราจะกำหนดให้ ASCII เป็นอักขระ