《The C Programming Language》 1-22
来源:互联网 发布:ubuntu apt get glib 编辑:程序博客网 时间:2024/05/01 23:44
该程序还添加了删除每一行开头空格的功能:
例如:输入:abcd/tehghjk,
输出:abcd
ehghjk
输入:abc def ghk
输出:abc def
ghk
输入:abc fekgl(中间有7个空格)
输出:abc
fekgl
#include <stdio.h>
#define MAXLINE 1000#define STEP 10 //以10个字符为一段
int getLine(char line[],int maxline);
void process(char line[],int len);
int main(int argc, char *argv[])
{
char line[MAXLINE];
int len;
int i,j,k,l;//循环计数变量
int partCount;
int flag=0;
while((len=getLine(line,MAXLINE))>0)
{
if(len<=STEP)
partCount=len;
else
partCount=STEP;
for(i=0; i<len; i++)
{
if((i+1)%partCount==0||flag==1)
{
j=i;
int startIndex=j-(partCount-1);
int first=0;
for(k=startIndex; k<=j; k++) //查找每一组分段中首个非空字符的位置
{
if(line[k]!=' '&&line[k]!='\t')
{
first=k;
break;
}
}
int lastSpace=j;
for(k=j; k>=startIndex; k--)//查找每组分段中最后一个空格的位置。
{
if(line[k]==' '||line[k]=='\t')
{
lastSpace=k;
break;
}
}
if(lastSpace>first&&lastSpace!=j)//将每段中最后一个空格变为换行,如果有空格的话
line[lastSpace]='\n';
for(l=first; l<=j; l++)//输出每段中从第一个非空格到最后一个字符之间的字符
{
putchar(line[l]);
}
putchar('\n');
}
if(i==(len-len%partCount))//如果 剩下的字符长度达不到分段的长度。
{
partCount=len-i;
i=len-2;
flag=1;//使下一轮循环进入上一个if中。
}
}
}
return 0;
}
int getLine(char line[],int maxline)
{
int c;
int i;
for(i=0; i<maxline&&(c=getwchar())!=EOF&&c!='\n'; ++i)
{
line[i]=c;
}
if(c=='\n')
line[i]=c;
return i;
}
- 《The C Programming Language》 1-22
- The C Programming Language 练习题1-22
- The C Programming Language--------(1)
- The C programming language
- the c programming language
- The C Programming Language
- 《The C Programming Language》读书笔记1
- 读《The C Programming Language》(1)
- 《The C Programming Language》读书笔记1
- The C programming language-Exercise 1-9
- The c programming language 1-9
- The C Programming Language 第1章
- [the c programming language]-1章:导言
- 《The C Programming Language》阅读笔记1
- The C programming Language 1-13
- The C Programming Language 练习题1-21
- The C Programming Language 练习题1-23
- The C Programming Language 练习题1-24
- struts2上传文件
- 黑马程序员 SQL SERVER 基础
- Objective-C中的meta-class
- 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方
- 将空格串替换为最小数量的制表符和空格,但要保持单词之间的间隔不变。
- 《The C Programming Language》 1-22
- 复制xcode4工程
- 【个人日志】20120318 坚持就是一辈子
- zoj 1334 Basically Speaking
- zoj 1334 Basically Speaking
- zoj 1331 Perfect Cubes
- sizeof 小结
- 闪念记录-20120318
- 第02章_循环结构程序设计