วิธีอ่านสตริงใน C. ภาษาการเขียนโปรแกรม C ไม่ได้ระบุประเภทข้อมูลสตริงจริง ใน C สตริงจะถูกจำลองโดยอาร์เรย์ของอักขระที่สิ้นสุดใน NULL อาร์เรย์ดังกล่าวสามารถประกาศแบบคงที่หรือเป็นตัวชี้ได้ มาตรฐาน C มีฟังก์ชันมากมายในการจัดการอาร์เรย์อักขระหรือสตริง C บทความนี้เน้นที่ฟังก์ชันที่อ่านจากสตรีมอินพุตและจากไฟล์ ทำตามคำแนะนำเหล่านี้เพื่อเรียนรู้วิธีอ่านสตริงใน C
ขั้นตอนที่ 1
ทำความเข้าใจพื้นฐาน สตริง C คืออาร์เรย์ของแผนภูมิประเภท เช่นเดียวกับอาร์เรย์ C ทั้งหมด องค์ประกอบแรกจะถูกสร้างดัชนีที่ 0 และสุดท้ายที่ "ความยาวของสตริงลบ 1" โดยปกติ คอมไพเลอร์จะแทรก NULL ที่ตำแหน่งสุดท้าย ดังนั้นสตริงจึงสามารถเก็บ "ความยาวของสตริงลบ 1" ได้ องค์ประกอบ Null เทียบเท่ากับ 0x00 ในรูปแบบจำนวนเต็มและ '\0' ในรูปแบบถ่าน องค์ประกอบสามารถเข้าถึงได้โดยตัวดำเนินการ "[]" ขั้นตอนที่ 2 แสดงแนวคิดเหล่านี้
วิดีโอประจำวันนี้
ขั้นตอนที่ 2
เพิ่ม "include directive" ด้านล่างในไฟล์ต้นฉบับก่อนใช้ฟังก์ชันของบทช่วยสอนนี้:
#include < stdio.h >
ขั้นตอนที่ 3
ประกาศสตริง C รหัสด้านล่างแสดงการประกาศโดยใช้วิธีการคงที่และตัวชี้:
// การประกาศแบบคงที่ ถ่าน str[50] = {0}; // วิธีจดชวเลขเพื่อเริ่มต้นองค์ประกอบทั้งหมดเป็น 0 // str [49] คือ NULL // str มีความจุ 48 ตัวอักษร // ประกาศโดยตัวชี้ถ่าน
pStr = NULL; // ไม่มีการจัดสรรหน่วยความจำ pStr = (ถ่าน)malloc (50); // สิ่งนี้ทำโดย "malloc()"ขั้นตอนที่ 4
อ่านข้อมูลลงในสตริง C โดยใช้ "scanf()" ซึ่งอ่านชุดของสตริงที่คั่นด้วยช่องว่างจากมาตรฐาน ป้อนข้อมูลและวางไว้ในที่อยู่ที่เป็นของตัวแปรอ้างอิงที่เหมาะสมตาม "รูปแบบ สตริง":
int n; printf("ป้อนชื่อและอายุของคุณ: "); scanf("%s%d", str, &n); // printf("คุณชื่อ %s และคุณอายุ %d เก่า\n", str, n);
ขั้นตอนที่ 5
ใส่ข้อมูลลงในสตริง C โดยใช้ฟังก์ชัน "gets()" ที่ง่ายกว่า ซึ่งจะอ่านข้อมูลจากอินพุตมาตรฐานลงในสตริงเท่านั้น:
printf("ป้อนนามสกุลของคุณ: "); ได้รับ (str); printf("ชื่อของคุณคือ %s\n", str);
ขั้นตอนที่ 6
อ่านข้อมูลไฟล์ลงในสตริง C โดยใช้ "fscanf()"; ฟังก์ชั่นนี้คล้ายกับ "scanf()":
ไฟล์* pไฟล์; pFile = fopen("myFile.txt", "r"); // ถือว่าไฟล์นั้นมีอยู่และมีข้อมูลถ้า (NULL != pFile) { fscanf (pFile, "%s", str); printf("คำแรกในไฟล์คือ %s\n", str); fclose (pFile); }
ขั้นตอนที่ 7
ทำซ้ำขั้นตอนที่ 5 โดยใช้ "fgets()" ซึ่งทำงานเหมือนกับ "gets()":
ไฟล์* pไฟล์; pFile = fopen("myFile.txt", "r"); ถ้า (NULL != pFile) { fgets (pFile, str); printf("คำแรกในไฟล์คือ %s\n", str); fclose (pFile); }
สิ่งที่คุณต้องการ
C/C++ IDE หรือคอมไพเลอร์ C
หนังสือเกี่ยวกับภาษาซี เช่น "The C Programming Language" โดย Brian W. เคอร์นิแกน
เคล็ดลับ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันที่กล่าวถึง โปรดไปที่เว็บไซต์ C Plus Plus
คำเตือน
อย่าพยายามรวบรวมรหัสนี้ มีไว้เพื่อแสดงหน้าที่เท่านั้น ไม่ใช่โปรแกรมที่สอดคล้องกันและจะให้ข้อผิดพลาดเมื่อคอมไพล์