3/29(목) 수업한 1.9 문자 배열에 대한 질문입니다 ㅜㅜ

gagdily17 Reply 6 years 34 weeks ago
#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[]만 문자로 존재하는건가요??
onacloud Reply 6 years 34 weeks ago
1. int getline(char s[], int lim) 함수는 사용자가 입력한 문자열을 s에 저장하고, s의 길이를 return해주는 함수 입니다. 문자열의 길이를 return하는 이유는 입력한 문자열이 길이를 통해 s에 총 몇개의 문자가 저장되어 있는지 또는 EOF만나서 s가 비어있는지 확인 가능하기 때문입니다. 2. geline은 숫자값을 return하므로 숫자값으로 됩니다. 물론 s에도 사용자가 입력한 문자들이 저장되어 있습니다.