029.字符行排版

简介: 029.字符行排版
/* 字符排版函数,将字符行内单字之间的空白字符平均分配插入到单字之间*/
#define N 80
edit(char *s)
{
  int i,sp,w,inw,v,r;
  char buf[N],*str;
  for(inw=sp=w=i=0;s[i];i++)
  {
    if(s[i]==' ')
    {   /* 统计空白个数*/
      sp++;
      inw=0;  /* 置空白符状态*/
    }
    else if(!inw)
    {
      w++;  /* 统计单字个数*/
      inw=1;  /* 置单字状态*/
    }
  }
  if(w<=1)
    return; /* 单字数不超过1, 不排版 */
  v=sp/(w-1); /* 每个间隔平均空白符 */
  r=sp%(w-1); /* 多余的空白符 */
  strcpy(buf,s);
  for(str=buf;;)
  {
    while(*str==' ')str++; /* 掠过空白符 */
    for(;*str&&*str!=' ';) /* 复制单字 */
      *s++=*str++;
    if(--w==0)
      return;   /* 全部单字复制完毕,返回 */
    for(i=0;i<v;i++)
      *s++=' '; /* 插入间隔空白符 */
    if(r)
    {
      *s++=' '; /* 插入一个多余空白符 */
      r--;
    }
  }
}
char buff[N];
main()    /* 用于测试edit函数 */
{
  clrscr();
  puts("This is a typeset program!\nPlease input a character line:\n");
  gets(buff);
  edit(buff);
  printf("\nThe character line after typeset is:\n\n%s\n",buff);
  puts("\n Press any key to quit...\n ");
  getch();
}
相关文章
|
8月前
|
前端开发 容器
CSS 强制英文、中文在一行时不需要换行
CSS 强制英文、中文在一行时不需要换行
42 0
|
4月前
|
前端开发 容器
css英文文本不换行,css怎么实现英文不换行
css英文文本不换行,css怎么实现英文不换行
|
4月前
LaTeX 实现表格内换行
LaTeX 实现表格内换行
118 1
|
5月前
|
前端开发
CSS:设置字母间距、中文汉字间距
CSS:设置字母间距、中文汉字间距
|
8月前
|
前端开发
css 实现标签内容多行截取(...)数字换行--英文--文字处理
css 实现标签内容多行截取(...)数字换行--英文--文字处理
|
前端开发 程序员
小细节:盒模型里面连续输入英文和数字不会自动换行,汉字会自动换行
小细节:盒模型里面连续输入英文和数字不会自动换行,汉字会自动换行
63 0
html+css实战55-文本缩进
html+css实战55-文本缩进
65 0
html+css实战55-文本缩进
成功解决英文单词换行问题,文本里的单词换行时一个单词被分开成两个部分
成功解决英文单词换行问题,文本里的单词换行时一个单词被分开成两个部分
成功解决英文单词换行问题,文本里的单词换行时一个单词被分开成两个部分
去掉文本中的html标签
去掉文本中的html标签
1567 0
|
前端开发
CSS截取字符串,多余文字用省略号显示
line-height: 30px; text-align: center; text-overflow:ellipsis;/*让超出的用.
1534 0