문자열 계산
팬지
2023.04.01
질문 제목 : 질문 내용 : #include stdio.h
int main()
{
char voca[100];
int len=0;
printf(영단어 입력:);
scanf(%s, voca);
while(voca[len] != 0)
len++;
printf(입력한 영단어 길이는 %d\n,len);
return 0;
}
여기서 int len 은 정확히 어떤역할을 하는건가요...?
-
애교
len은 voca[len]이 0이 아닌 동안 1씩 증가합니다.
voca[len]은 입력받은 문자열인 voca 배열의 len번째의 글자 하나를 말하는데
len이 0부터 하나씩 증가하므로 제일 첫 글자부터 0인지 아닌지 검사합니다.
글자는 아스키코드값을 가지며 0이라는 것은 널문자라고 해서 문자열 배열에서 문자열 바로 뒤에 들어가서 배열에서 문자열이 여기까지라는 걸 뜻합니다.
그러니 배열에서 널문자가 나올때까지 len을 증가시키면 문자열의 길이가 되겠죠.
-
늘다
이렇게 실행하면 되긴하나요? char형은 선언시 0으로 초기화되나? 아니면 char형의 배열이 0으로 초기화되나?
무튼 님의 질문에 답변은 영단어의 길이만큼 배열에 초기화(값의 대입?정도로 생각) 되는데 len번째까지 초기화 되었다.의 의미에요. 이해되나요?? 저는 제가한말 이해 못할듯....