반응형
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 함수를 사용하면 됩니다.
반응형
'개발 공부 > C언어' 카테고리의 다른 글
#11 C언어 *와 &가 헷갈려서 포인터를 쉽게 설명해 보았다 (0) | 2022.08.02 |
---|---|
#10 C언어에서 헷갈리는 따옴표 " ' 구별해서 쓰는 법 (0) | 2022.08.02 |
#8 C언어 배열이름 앞에는 왜 &를 안 붙일까? (0) | 2022.08.01 |
#7 C언어 포인터 변수의 크기, 1비트는 몇 바이트일까 (0) | 2022.08.01 |
#6 C언어 사칙연산할 때의 자료형 변환 (0) | 2022.08.01 |
댓글