C언어 독학 배열로 문자열 표현하기
C언어 독학 배열로 문자열 표현하기
■ C언어에서 문자열을 표현할 때는 큰따옴표("")를 이용하는데요. char 배열을 이용해서 문자열을 저장하고 변경할 수 있는데 간단한 코딩을 해보면서 그 과정을 확인해보겠습니다. 먼저 char 배열에 문자열을 저장하겠습니다.
▲ char 배열 str에 길이를 지정하지 않고 문자열을 입력하고 있습니다. 이렇게 길이를 지정하지 않으면 컴파일러가 문자열을 체크한 후 그 길이를 자동으로 지정해주는데요. 1byte의 char의 길이를 확인하기 위해서 sizeof() 연산자를 사용하고 있습니다. 프로그램을 실행하면 다음과 같은 결과가 출력되는데요.
▲ str 배열의 크기는 8byte이군요. 1byte 짜리 데이터가 8개 있다는 소리인데.... 좀 이상합니다. "Hello~!" 문자열은 분명히 7개인데 왜 8개라고 표시되는 걸까요? 이는 C언어 문자열의 마지막에는 무조건 null 문자가 들어가기 때문입니다. 그럼 마지막 8번째 자리에 있는 null 문자를 char형과 정수형으로 출력해서 존재를 확인해보겠습니다.
▲ str[7](여덟 번째 자리)에 있는 녀석의 존재를 확인하기 위해서 정수형과 문자형으로 출력을 하고 있습니다.
▲ 이렇게 null 문자의 정수값인 "0"과 문자형 값인 "공백"이 표시됩니다. 이처럼 C언어 문자열의 마지막에는 무조건 'null'값이 포함되어 있다는 걸 유념해야 합니다. 만약 이 값이 없다면 이는 문자열이 아니고 그냥 단순하게 문자 배열에 지나지 않습니다. 참고하시고요.
이제 이 문자열 배열의 값을 변경해보겠습니다. 마지막 느낌표"!"를 물음표"?"로 변경해보겠습니다.
▲ 변경할 자리에 문자를 대입하면 되구요.
▲ 해당 값만 변경돼서 출력되는 걸 확인할 수 있습니다.
이렇게 해서 char 배열에 저장된 문자열의 기본 개념을 정리해봤는데요. 문자열의 마지막에는 무조건 null 문자가 포함되며 이게 없으면 단순하게 문자 배열에 지나지 않고 각 배열의 요소에 접근에서 문자열의 일부만 변경할 수도 있다는 것까지 확인해봤습니다. 수고하셨어요.