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

Scansets ใน C


ให้เราดูว่าชุดสแกนใน C คืออะไร ชุดสแกนนั้นเป็นตัวระบุที่รองรับโดยฟังก์ชันตระกูล scanf มันถูกแสดงโดย %[] ภายใน scanset เราสามารถระบุอักขระได้เพียงตัวเดียวหรือชุดอักขระ (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) เมื่อชุดสแกนได้รับการประมวลผลแล้ว scanf() สามารถประมวลผลเฉพาะอักขระที่กล่าวถึงในชุดสแกนเท่านั้น

ตัวอย่าง

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[A-Z]s", str);
   printf("Given String: %s", str);
}

ผลลัพธ์

Enter something: HElloWorld
Given String: HE

โดยจะละเว้นอักขระที่เขียนด้วยอักษรตัวพิมพ์เล็ก ตัว "W" จะถูกละเว้นด้วยเพราะมีอักษรตัวพิมพ์เล็กอยู่ข้างหน้า

ตอนนี้ หากชุดสแกนมี '^' อยู่ในตำแหน่งแรก ตัวระบุจะหยุดอ่านหลังจากอักขระนั้นปรากฏขึ้นครั้งแรก

ตัวอย่าง

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^r]s", str);
   printf("Given String: %s", str);
}

ผลลัพธ์

Enter something: HelloWorld
Given String: HelloWo

ที่นี่ scanf() จะละเว้นอักขระหลังจากได้รับตัวอักษร 'r' เมื่อใช้คุณสมบัตินี้ เราสามารถแก้ปัญหาที่ scanf ไม่ใช้สตริงที่มีช่องว่าง ถ้าเราใส่ %[^\n] มันจะดึงอักขระทั้งหมดจนกว่าจะได้อักขระขึ้นบรรทัดใหม่

ตัวอย่าง

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^\n]s", str);
   printf("Given String: %s", str);
}

ผลลัพธ์

Enter something: Hello World. This line has some spaces.
Given String: Hello World. This line has some spaces.