C에서 공백이 있는 scanf 문자열
-
scanf
에서RegEx
를 사용하여 C에서 공백으로 사용자 입력 받기 -
scanf
에서%[^\n]s
를 사용하여 C에서 공백으로 사용자 입력 가져오기 -
C에서 공백으로 사용자 입력을 받으려면
scanf
에서%[^\n]%*c
를 사용하십시오. -
C에서 공백으로 사용자 입력을 받으려면
scanf
에서gets()
를 사용하십시오.
이 기사에서는 C 프로그래밍 언어의 파일 디스크립터에 대해 설명합니다.
사용자로부터 입력을 수집할 때 scanf()
는 대부분의 경우 공백, 백슬래시, 탭 등과 같은 것을 무시합니다. 그러나 scanset 지정자를 사용하면 이 제한을 피할 수 있습니다. scanset 지정자는 %[]
표기법으로 표시됩니다.
이 대괄호로 표현하면 달성하려는 작업에 따라 문자 또는 문자열을 작성할 수 있습니다.
C 프로그래밍 언어는 포함된 공백을 유지하면서 사용자로부터 입력을 받는 데 사용할 수 있는 여러 가지 방법을 제공합니다. 이를 구현하는 몇 가지 예를 살펴보겠습니다.
scanf
에서 RegEx
를 사용하여 C에서 공백으로 사용자 입력 받기
이 %[]
는 스캔 세트 지정자이며 0-9, a-z, 공백
및 A-Z
를 사용하면 해당 문자만 입력으로 사용할 수 있음을 나타냅니다. 다른 것은 사용할 수 없습니다.
s
는 컴퓨터가 문자열을 입력으로 수락함을 나타냅니다.
소스 코드:
#include <stdio.h>
int main(int argc, char const *argv[]) {
char name[20];
printf("Please enter your full name: ");
scanf("%[0-9a-zA-Z ]s", name);
printf("\nYour name is: %s", name);
return 0;
}
출력:
Please enter your full name: Saad Aslam
Your name is: Saad Aslam
scanf
에서 %[^\n]s
를 사용하여 C에서 공백으로 사용자 입력 가져오기
이 인스턴스의 scanset 문자는 [].
입니다. ^\n
문자는 새 줄을 찾을 때까지 사용자 입력을 계속 읽도록 운영 체제에 지시합니다.
이 경우 두 문자가 동일하지 않으면 true를 반환하는 XOR 연산자를 활용했습니다. 문자가 새 줄 \n
으로 결정된 후 XOR 연산자 ^
는 문자열을 읽을 때 false를 반환합니다.
따라서 %s
가 아닌 %[n]s
로 작성합니다. 따라서 공백이 포함된 입력 줄을 얻으려면 다음을 사용할 수 있습니다.
scanf("%[n]s", str);
소스 코드:
#include <stdio.h>
int main() {
char str[100];
printf("Please enter your full name: ");
scanf("%[^\n]s", str);
printf("\nYour name is: %s", str);
return 0;
}
출력:
Please enter your full name: Saad Aslam
Your name is: Saad Aslam
C에서 공백으로 사용자 입력을 받으려면 scanf
에서 %[^\n]%*c
를 사용하십시오.
이 경우 scanset 문자는 []입니다.
^\n
문자는 운영 체제가 새 줄을 찾을 때까지 입력을 계속 받도록 지시합니다.
그런 다음 %*c
를 사용하여 줄 바꿈 문자를 읽고 여기서 사용된 *
는 이 줄 바꿈 문자가 출력에서 제외되었음을 나타냅니다.
소스 코드:
#include <stdio.h>
int main() {
char str[20];
printf("Please enter something: ");
scanf("%[^\n]%*c", str);
printf("\nYou entered: %s", str);
return 0;
}
출력:
Please enter something: Writer at Delft Stack
You entered: Writer at Delft Stack
C에서 공백으로 사용자 입력을 받으려면 scanf
에서 gets()
를 사용하십시오.
C 라이브러리에 포함된 char *gets(char *str)
함수는 표준 입력(stdin
)에서 한 줄을 읽고 str
이 참조하는 문자열에 저장합니다. 상황에 따라 개행 문자를 읽거나 파일의 끝에 도달할 때(둘 중 먼저 발생하는 경우) 중지됩니다.
소스 코드:
#include <stdio.h>
int main() {
char str[50];
printf("Please enter your name: ");
gets(str);
printf("\nYour name is: %s", str);
return (0);
}
출력:
Please enter your name: Saad Aslam
Your name is: Saad Aslam
I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.
LinkedIn