#include <stdio.h>
#define MAXLINE 1000
int getline(char line[], int maxline);
void copy(char to[], char from[]);
int main()
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];
max = 0;
while ((len=getline(line,MAXLINE))>0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0)
printf("%s", longest);
return 0;
}
int getline(char s[], int lim)
{
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n';++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
void copy(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
이건 연습문제 코드는 아니구요, 오늘 배운 1.9에 있는 코드를 직접 옮겨본건데요..
1. 두 번째 함수에서 i값을 왜 리턴해주는지 모르겠습니다 .
2. 두 번째 함수에서 getline은 숫자값이 되는건가요?? s[]만 문자로 존재하는건가요??
1. int getline(char s[], int lim) 함수는 사용자가 입력한 문자열을 s에 저장하고, s의 길이를 return해주는 함수 입니다. 문자열의 길이를 return하는 이유는 입력한 문자열이 길이를 통해 s에 총 몇개의 문자가 저장되어 있는지 또는 EOF만나서 s가 비어있는지 확인 가능하기 때문입니다.
2. geline은 숫자값을 return하므로 숫자값으로 됩니다. 물론 s에도 사용자가 입력한 문자들이 저장되어 있습니다.