strcmp는 문자열끼리밖에 비교가 안됨?
문자열 저장하는 방식?으로 저장하니까 잘 작동함
근데 배열 초기화할때도 널문자 넣어줘야됨? 배열에 저장되는 문자 갯수만큼 배열 크기가 정해지는데도 넣어줘야됨?
그리고 "abc" 이거랑 {'a','b','c'}
다름?
strcmp는 문자열끼리밖에 비교가 안됨?
문자열 저장하는 방식?으로 저장하니까 잘 작동함
근데 배열 초기화할때도 널문자 넣어줘야됨? 배열에 저장되는 문자 갯수만큼 배열 크기가 정해지는데도 넣어줘야됨?
그리고 "abc" 이거랑 {'a','b','c'}
다름?
"abc" == { 'a', 'b', 'c', '\0' }
"abc" == { 'a', 'b', 'c', 0 }
sizeof password == 5
큰따옴표로 저장하면 자동으로 널문자가 삽입되는거임? 감사염
ㅇㅇ 'C' style string == null terminated string
그리고 password 입력 받을 배열을 리터럴 스트링을 대입해두면 어떡하냐 자리만 잡아야지
char pw_try[ 5 ] = { 0 }; 이렇게 해두도록
리터럴 스트링 ( 따옴표로 표시한 문자열 ) 은 읽기만 가능한 영역이라 써 넣질 못해.
그럼 strcmp 함수에서는 널문자로 끝나는 문자열만 구별가능한가요??
왠지는 모르겟는데 작동함요..{0} 해노면 다섯개 다 0(널문자)되서 숫자 입력하면 strcmp까지 왓을때는 문자열로 인식되나요??
strcmp() , strstr() , strncmp() , strnstr() , memcmp() , memset() 등등 비슷한거 많다. 이것들 어떻게 동작 하는건지 알아보면 니 질문은 해결될꺼임.. 구글에서 man memcmp 또는 man strcmp 이런식으로 검색 해봐
ㄱㅅㄱㅅ염
strcmp 는 문자열만 비교 가능 하고 숫자나 배열이나 다른거 비교 할때는 memcmp 를 써야 함
strcmp() 가 어떻게 구현 되어 있는지 보려면 구글에서 glibc strcmp.c 로 검색해봐. glibc memcmp.c 이렇게 하면 memcmp의 소스가 나온다. 마찬가지로 다른것도 검색해보면 소스가 나오니 참고하면됨.
오 숫자는 비교 안되는줄..그래도 문자열하고 char 다른점 뭔지 앎
지금겨우 문법하는 수준인데 그래도 한번 봐볼게요