본문 바로가기
개발 공부/C언어

#9 C언어 scanf 함수에서 문자열 입력할때 공백처리

by 반달bear 2022. 8. 2.
반응형

 

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 함수를 사용하면 됩니다.

 

 

 

 

 

반응형

댓글