我是一名初学者,正在使用 k&r 的 C 编程书籍学习编码。现在有一个“输入一组文本行并打印最长的程序”的示例
我给你完整的代码:
#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]='\n';
i++;
}
s[i]='\0';
return i;
}
void copy(char to[], char from[])
{
int i;
i=0;
while((to[i]=from[i])!='\0')
i++;
}
现在告诉我,在 getline 函数中,在语句中:
for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';i++)
为什么我们使用“c!='\n' ”
这个 for
语句之后的代码的含义是什么,即
s[i]=c;
if(c=='\n)
{
s[i]=c;
i++;
}
s[i]='\0'
为什么我们在这里使用 s[i]='\0' ?
和 i++;
语句在 if(c=='\n')
条件中?
最佳答案
for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';i++)
why do we usec!='\n'
我们使用c!='\n'
当用户输入 \n
时停止扫描输入字符(换行符)字符或者换句话说,当用户点击 enter
时关键。
why have we used
s[i]='\0'
in andi++;
statement inif(c=='\n')
condition
i++
用于最后一次增加数组/字符串的索引值以适应终止'\0'
空字符。s[i]='\0'
用于以空字符终止\结束字符串。这对于标记字符串结尾并在范围内打印字符串(最多'\0'
字符)至关重要
关于c - c! 是什么意思? ='\n' 在 for 语句中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37852478/