這是我在c代碼。 我編譯並在ubuntu終端上運行它,並且最大長度(最大)被打印出來,但不是字符串(最長) - 它只是輸出一個零和一個小盒子。 我是編程初學者。 謝謝ubuntu終端的輸出是什麼,有一小盒零和一個?
#include<stdio.h>
#define MAXLINE 1000
int my_getline(char line[], int maxline);
void copy(char to[], char from[]);
main() {
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];
max = 0;
while ((len = my_getline(line, MAXLINE)) > 0) {
if (len > max) {
max = len;
copy(longest, line);
}
}
if (max > 0)
printf("%d\t %s \n",max, longest);
return 0;
}
int my_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;
}
'到第[i + 1] = '\ 0';'是錯誤的,這寫一個位置,過去它被認爲。這將複製'from'中的每個字符,最後留下一個洞,並在其後插入''\ 0''。 '到[i] ='\ 0';'是你想要的。 –
你說得對。抱歉。愚蠢的錯誤...:P – Xephon
你爲什麼不編輯你的答案來解決這個問題? –