Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 스캔 세트

<시간/>

C에서 scanset이 무엇인지 봅시다. scanset은 기본적으로 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.