C에서 배열, scanf 관련 초보적인 질문
풍란
2024.01.30
질문 제목 : c에서 배열, scanf 관련 초보적인 질문c에서 scanf로 받을 떄 %c가 아닌 %s로 받는 이유질문 내용 : 에서 scanf로 입력을 받을 때,
char a[100];
scanf (%s,&a);
인데 왜 %c가 아닌 %s로 받나요?
-
아인 2024-01-30
배열 A에 어떠한 것을 stdin으로 입력 받겟다는것은 문자열을 받겟다는 것입니다. 그렇기때문에 %s가 맞습니다. 또한 배열의 이름을 그냥 쓰게되면 바로 주소가되기때문에 &연산자는 쓰지않으셔도 됩니다.
-
샹1큼해 2024-01-30
앗! 감사합니다 제가 원하던 답변이예요!
-
물보라 2024-01-30
%s 로 하면 공백이 나올 때까지의 문자들을
추가로 전달된 주소부터 차례로 채워주고, 끝에 0 도 넣어 줍니다.
%c 로 하면 공백과 문자를 구분하지 않고 글자를 입력받습니다.
%5c 로 하면 5 글자를 추가로 전달된 주소부터 차례로 채워주지만,
끝에 0 을 넣어주진 않습니다.
둘 다 문자열을 입력받을 때 사용할 수 있지만,
용도에 맞게 쓰는 것이죠. -
유1혹 2024-01-30
아.. 그렇게 간단한건가요?? 답변 감사합니다.
-
참없다 2024-01-30
그렇게해두면 문자하나나 문자열을 둘다입럭받을수 있어서 그런거아닐까요
-
채련 2024-01-30
그럼 %c를 써도 될거같은데 왜 교재에서는 굳이 %s를 쓰나요
-
지옥 2024-01-30
%s는문자열 %c는 문자고 1차원 배열의 이름엔 주소값이있기때문에 주소연산자는안써도되요