문자열 기능을 사용하지 않고 어떤 문자열의 길이가 더 큰지 확인하는 프로그램을 작성하고 싶습니다. 나는 gets()
을 사용하여 두 개의 문자열을 입력하려고했지만 내 프로그램은 계속 충돌합니다. 도와주세요! 감사! 여기 C에서 gets()를 사용하여 문자열을 가져올 수 없습니다
while
루프에서
#include <stdio.h>
int l1,l2;
char *st1,*st2;
void accept()
{
gets(st1);
gets(st2);
}
void length()
{
int i = 0;
while (st1[i] != '\0')
{
l1++; i++;
}
i = 0;
while (st2[i] != '\0')
{
l1++; i++;
}
}
int main()
{
accept();
length();
if (l1 > l2)
printf("String #1 is greater in length.\n");
else
printf("String #2 is greater in length.\n");
}
st1 및 st2는 아무 것도 가리 키지 않습니다. – wildplasser
이 코드는 경고없이 컴파일됩니까? 오류가 발생하지 않고 실행됩니까? –
모든 맨 페이지 중 내가 가장 좋아하는 인용구가 있습니다 : "** gets()를 사용하지 마십시오. **" "안전하게 사용할 수 없으므로. –