문제의 직접적 질문은 아니지만 기초적인 질문 ...
문제를 많이 풀다보니 기초가 부족함을 알고 혼자 여기저기 찾았지만 어려워서.. 몇가지를 고수님께 질문드립니다.
모든것은 c언어에서 string.h를 제외하고 생각하겠습니다.
많은 도움 바랍니다 죄송합니다...
===================첫질문..=================== char str[101];scanf("s",str);
이런상황에서 입력을 okay로 받았습니다.
스트림에는 okay\n 가들어왔는데\n때고 okay가 str에 박힙니다.그러면 str[0]=='o' str[1]=='k' str[2]=='a' str[3]=='y'일텐데
1. str[4]는 무엇인지 ....
2. if(str=="okay)할때, 왜 okay라고 비교했을때 같다가 안되는지...
3. 보통 gets();로 받을때는 문자열 마지막에 \n으로 끝남을 확인할수있는데 scanf로 받은경우는 문자가 끝난다 판단을 어떻게 하는지.... (저는 초기에 문자열을 char str[101]={};처럼 null 로 초기화하고 null이나오면 끝났다라고 판단하는데 그게 맞는지..)
==================두번째질문=======================
char str[101]={};
댓글을 작성하려면 로그인해야 합니다.
leejun332211 5년 전
문제의 직접적 질문은 아니지만 기초적인 질문 ...
문제를 많이 풀다보니 기초가 부족함을 알고 혼자 여기저기 찾았지만
어려워서.. 몇가지를 고수님께 질문드립니다.
모든것은 c언어에서 string.h를 제외하고 생각하겠습니다.
많은 도움 바랍니다 죄송합니다...
===================첫질문..===================
char str[101];
scanf("s",str);
이런상황에서 입력을 okay로 받았습니다.
스트림에는 okay\n 가들어왔는데
\n때고 okay가 str에 박힙니다.
그러면 str[0]=='o' str[1]=='k' str[2]=='a' str[3]=='y'
일텐데
1. str[4]는 무엇인지 ....
2. if(str=="okay)할때, 왜 okay라고 비교했을때 같다가 안되는지...
3. 보통 gets();로 받을때는 문자열 마지막에 \n으로 끝남을 확인할수있는데
scanf로 받은경우는 문자가 끝난다 판단을 어떻게 하는지....
(저는 초기에 문자열을 char str[101]={};처럼 null 로 초기화하고 null이나오면 끝났다라고
판단하는데 그게 맞는지..)
==================두번째질문=======================
char str[101]={};