您的位置:首页 > 编程语言

手抄代码1-17

2016-05-28 21:30 148 查看

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;
}


没有别的多实践,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: