1-17
判断特定的行长,并打印它;
#include <stdio.h>
#define MAXLINE 1000 //可容纳的最长行,
#define LONGLINE 80 //特定行长,
int getline(char line[], int maxline);//读取新行,并返回行长,
main()
{
int len;//接收行长
char line[MAXLINE];//保存新行
while((len=getline(line, MAXLINE)) >0)
{
if(len >= LONGLINE)//判断,并打印。
printf("%s", line);
}
return 0;
}
int getline(char line[], int maxline)
{
int c, i;
for(i=0;(c=getchar())!='\n' && i<maxline;i++)//行是否结束。
{
line[i] = c;
}
if(c=='\n')
line[i++] = '\n';
line[i] = '\0';//字符串。
return i;
}
与1-16类是。
1-18
删除行尾空个,制表符。
#include <stdio.h>
#define MAXLINE 1000
int getline(char line[], int maxline);//输入行返回串长
int removee(char s[]);//删除尾部tab和空格,返回修改后的长度。
main()
{
char line[MAXLINE];
while (getline(line, MAXLINE) > 0) {
if(removee(line) > 0)
printf("%s", line);
}
return 0;
}
int getline(char line[], int maxline)
{
int c, i;
for(i=0;(c=getchar())!='\n' && i<maxline;i++)//行是否结束。
{
line[i] = c;
}
if(c=='\n')
line[i++] = '\n';
line[i] = '\0';//字符串。
return i;
}
int removee(char s[])
{
int i = 0;
while(s[i]!='\n')//等价于strlen;
i++;
for(--i; s[i]=='\t'||s[i]==' ';i--)
;
if(i>=0)//截断
{
i++;
s[i] = '\n';
i++;
s[i] = '\0';
}
return i;
}
没有别的多实践,