You are viewing a single comment's thread from:
RE: [C언어] 문자열 길이 구하기
아, 값이 있을 때까지 참이니깐, 실행되는 거네요. 오호. 그러면 딱 길이가 나오겠네요. 근데 마지막엔 null 값이 들어있어서 1빼준다고 하던데, 여기는 null값이 없나요? ㆍㅅㆍ 그거랑 무슨 차이인가요?
아, 값이 있을 때까지 참이니깐, 실행되는 거네요. 오호. 그러면 딱 길이가 나오겠네요. 근데 마지막엔 null 값이 들어있어서 1빼준다고 하던데, 여기는 null값이 없나요? ㆍㅅㆍ 그거랑 무슨 차이인가요?
그건 배열로 한번 해당 위치를 if문 조건문으로 찍어보세요. 그래야 그 의미를 할 수 있어요.
'\0' 자체가 거짓입니다. 문자는 아스키코드값이잖아요. 그리고 널 문자는 문장의 끝을 지칭하고요.
그리고 문자열의 길이에서 -1을 빼준다는 의미는 문자열 길이값은 마지막 문자인 널문자까지 포함한 글자의 길이를 의미합니다. 그래서 코딩의 표현에서 마지막 널문자까지 루프를 돌릴 필요가 없기 때문에 1를 빼주는 코딩을 할 수 있고요.
그러면 이렇게 읽어도 마지막엔 널문자가 한 번은 읽히겠네요? ㅇ_ㅇ str[i-1] 이렇게 해도 똑같나요?
그렇게 하면 i는 어떤 값으로 증가하든 감소하든 하기 때문에 거기에 -1을 하면 안돼요. i값은 가변적이기 때문에 알수 없는 수에 -1을 하면은 안되겠지요.
위 식에서 보면 i가 0부터 시작하기 때문에 0-1은 str[-1]이 되겠죠.
아하, ㅇ_ㅇ 그렇군요. 그래서 에러가 났었군요. ㅎㅎㅎㅎㅎ 우왕 ㅎㅎㅎ