개발 공부/C언어
#9 C언어 scanf 함수에서 문자열 입력할때 공백처리
반달bear
2022. 8. 2. 07:30
반응형
char str[] = "Good morning";
과
scanf("%s", str); <- Good moring 입력 문자열 입력임으로 %S 써야함
의 차이는
바로 scanf 함수에서는 공백을 '/0'로 인식한다는 것 입니다!!!!!
그래서 char str 배열에서는 문자열이 1개가 되지만 scanf str에서는 2개 입니다.
(문자열은 \0를 기준으로 구분되기 때문입니다)
그러므로
scanf("%s", str);
printf("문자 단위 출력 / 문자열 출력");
while(str[idx] != 0)
{
printf("%c", str[idx]);
}
코드를 이렇게 쓰고 str을 Good morning 이렇게 입력하면
printf 함수에서는 Good 만 출력됩니다. scanf함수로 문자열을 입력받으면 Good 다음 공백에 \0가 입력되기 때문입니다.
만약 \0가 공백에 입력되길 원치 않는다면 문자는 getchar(), getc 문자열은 gets, fgets 함수를 사용하면 됩니다.
반응형