zoukankan      html  css  js  c++  java
  • 删除字符串的空白符

    编制一个字符串整理函数ver(char *),实现将已知字符串s中的前导空白符和尾随的空白类字符去掉,并将字符串非空白类字符之间的连续多个空白类字符缩减为一个

    char *ver(char *s)
    {
    char *p=s,*q=s;
    /*掠过前导空白符*/
    for (;*s==' ' || *s=='\t' || *s=='\n';s++);
    for (;*s;) { /*顺序访问字符串s中的每个字符*/
    *q++=(*s=='\t' || *s=='\n')?' ':*s;
    if (*s!=' ' && *s!='\t' && *s!='\n') s++;
    else
    while (*s!=' ' || *s=='\t' || *s=='\n') s++;
    }
    if (q>p && *(q-1)== ' ') /*如q>p,则已复制过非空白字符*/
    *(q-1)='\0'; /*如最后复制的是空白符,将其改为字符串结束符*/
    else
    *q='\0'; /*否则添加字符串结束符*/
    return p;
    }

    对于本题,还可以设置状态进行处理,开始时让flg为0,表示程序将遇到的空白类符是字符串的前导空白符;flg为1表示在复制过程中遇到了一个中间空白类字符;

    flg为2表示一个空白符字符已经处理结束.

    1 char *ver(char *s)
    2 {
    3 int flg=0;
    4 char *p=s,*q=s;
    5 for (;*s;s++) { /*顺序访问字符串s中的每个字符*/
    6 if (*s==' ' || *s=='\t' || *s=='\n') /*遇空白类字符*/
    7 flg=(flg==2)?1:flg;
    8 else {
    9 if (flg==1)
    10 *q++=' '; /*遇到空白类字符,复制下一个空白符*/
    11 *q++=*s; /*复制当前字符*/
    12 flag=2; /*一个中间空白符列处理结束*/
    13 }
    14 }
    15 *q='\0';
    16 return p;
    17 }

  • 相关阅读:
    170929-关于md5加密
    170911-关于maven的知识点
    opencv-python 学习初探1
    使用PDFminer3k解析pdf为文字遇到:WARING:root:GBK-EUC-H
    Python time strptime()与time strftime()
    chromedriver下载安装
    计数
    高效的几个小技巧
    phantomjs在win10下的安装
    win10下安装lxml
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2057250.html
Copyright © 2011-2022 走看看