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