wjdtmdrbs88   8년 전

제 예상엔 다나오는데 ... 그리고 NULL 초기화를 안해주면 왜 뒤에 지난번에 긴 걸 적으면 그것들까지 다나오는지도 ...

yukariko   8년 전

모음이 하나도 존재하지 않으면 단어 + ay만을 출력해야 합니다.

예를들어 hgjk 라면

hgjkay 가 되어야 하는데, 위 소스는 hgjkhgjkay를 출력합니다.

그리고 초기화를 해야 제대로 나오는 이유는

arr[idx++] = ~ 부분과

for(; i < strlen(arr); ) 때문인데,

첫번째 코드에 의해 문자열의 특징인 끝에 NULL문자가 붙는다는 조건이 사라지게 되어

strlen 함수를 호출했을때, 문자열의 길이가 증가 할 수 있습니다.


참고로 초기화는 char a[100] = {0, }; 같은 방법으로 하면 간단합니다.

그리고 strlen 함수는 호출될 때마다 문자열의 길이만큼 반복하기 때문에 한번만 구해주는것이 좋습니다.

위 소스의 경우 idx가 이미 그 길이를 담당하고 있기 때문에 strlen(arr)을 idx로 바꿔주어도 됩니다. 이 경우엔 초기화를 하지 않아도 제대로 답을 구해줍니다.

댓글을 작성하려면 로그인해야 합니다.