c/c++ 删除字符串中的空格的方法

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

对于本题,还可以设置状态进行处理,开始时让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='';
16   return p;
17 }

网上找的另一方法

string ls_string,ls_string_before,ls_string_after

integer li_tab,li_blank,li_blank_dbcs

 

ls_string = trim(sle_1.text)

 

//PB在处理TAB字符不分全角和半角,只用POS就可以,不用POSW

li_tab = Pos(ls_string, "~t")

DO WHILE li_tab > 0

 ls_string_before = Mid(ls_string,1,li_tab - 1)

 ls_string_after = Mid(ls_string,li_tab + 1)

 ls_string = ls_string_before + ls_string_after

 SetNull(li_tab)

 li_tab = Pos(ls_string, "~t")

LOOP

//删除半角空格

li_blank = pos(ls_string ,' ')

DO WHILE li_blank > 0

 ls_string_before = Mid(ls_string,1,li_blank - 1)

 ls_string_after = Mid(ls_string,li_blank + 1)

 ls_string = ls_string_before + ls_string_after

 SetNull(li_blank)

 li_blank = pos(ls_string ,' ')

LOOP

//删除全角空格

li_blank_dbcs = PosW(ls_string,' ')

DO WHILE li_blank_dbcs > 0

 ls_string_before = MidW(ls_string,1,li_blank_dbcs - 1)

 ls_string_after = MidW(ls_string,li_blank_dbcs + 1)

 ls_string = ls_string_before + ls_string_after

 SetNull(li_blank_dbcs)

 li_blank_dbcs = PosW(ls_string,' ')

LOOP

方法四

#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<math.h >
void fun(char *str);

int main()
{
 char str[8]="a bcd";
 fun(str);
 cout<<str<<endl;
 return 0;
}
void fun(char *str)
{
    int i, n=strlen(str);
 cout<<n<<endl;
    char *p=str;
 for(i=0;i<n;)
    {
        if(*p!=' ')
            str[i++] = *p;
        p++;
    }
    str[i]='';
}

实例

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)='';    /*如最后复制的是空白符,将其改为字符串结束符*/
    else
      *q='';  /*否则添加字符串结束符*/   
    return p;   
}

时间: 2024-12-28 07:40:09

c/c++ 删除字符串中的空格的方法的相关文章

php 删除字符串中的空格多种方法

 本教程提供了几款php教程  删除字符串中的空格多种方法哦,用了php函数,str_replace,trim,正则等替换字符串的空格有效方法 用php自带的函数 str_replace( "   ", " ",$str); 来替换   <?php $str = "##使用函数trim去掉字符串两端特定字符####"; $str1 = trim($str,"#"); //为函数trim传入第二个参数,trim将删除字符串

javascript中使用正则表达式实现删除字符串中的空格

实例  代码如下 复制代码 <script> var str="  yexj00  "; str=str.replace(/^s*|s*$/g,''); alert(str); </script> 实例 模仿RTrim:  代码如下 复制代码 <script> var str="yexj00   "; str=str.replace(/s*$/g,''); alert(str); </script> 实例 代码以及测试

java删除字符串中的空格、回车、换行符、制表符程序

java换行符 那是因为默认的情况下,界面上的换行时用的"n",这是LINUX和UNIX的换行符.在windows下换行符是"rn". 所以再将String对象写入到文件时,换行符应该把n写完整成rn  代码如下 复制代码 import java.util.regex.Matcher; import java.util.regex.Pattern; /**  * @author lei  * 2011-9-2  */ public class StringUtils

javascript删除字符串中所有空格代码

string.prototype.trim = function() { return this.replace(/(^s*)|(s*$)/g, ""); } string.prototype.ltrim = function() { return this.replace(/(^s*)/g, ""); } string.prototype.rtrim = function() { return this.replace(/(s*$)/g, ""

Python中使用strip()方法删除字符串中空格的教程

  这篇文章主要介绍了Python中使用strip()方法删除字符串中空格的教程,是Python入门学习中的基础知识,需要的朋友可以参考下 strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 语法 以下是strip()方法的语法: ? 1 str.strip([chars]); 参数 chars -- 字符-从开始或结束的字符串被删除去除. 返回值 此方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 例子 下面的例子显示

php中3种方法删除字符串中间的空格

 这篇文章主要介绍了php中3种方法删除字符串中间的空格,需要的朋友可以参考下 第一种:使用正则   代码如下:<?php echo preg_replace('# #', '', 'ab     ab'); //输出 "abab" ?> 第二种:使用str_replace()函数 代码如下:<?php echo str_replace(' ', '', 'ab    ab'); //输出 "abab' ?> 第三种:使用strtr()函数 代码如下:

一个可以删除字符串中HTML标记的PHP函数

一个可以删除字符串中HTML标记的PHP函数作者:limote 当访客留言和发帖时,我们并不希望访客在留言和帖子中使用HTML标记,所以在访客提交留言和帖子时我门得把HTML标记删除,下面的函数就是实现此功能的函数 <? function delete_htm($scr) { for($i=0;$i<strlen($scr);$i++) { if(substr($scr,$i,1)=="<") { while(substr($scr,$i,1)!=">

C#如何去掉字符串中所有空格

由于空格的ASCII码值是32,因此,在去掉字符串中所有的空格时,只需循环访问字符串中的所有字符,并判断它们的ASCII码值是不是32即可.去掉字符串中所有空格的关键代码如下: private void button1_Click(object sender, EventArgs e) { textBox2.Text = textBox1.Text; CharEnumerator myenum = textBox1.Text.GetEnumerator(); while (myenum.Move

asp 去除字符串中的空格和数字正则表达式

本文章为你提供一款超好的asp教程 去除字符串中的空格和数字正则表达式哦,这四款替换空格与数字的正则是各有不同哦. <script language="网页特效" type="text/javascript"> var str; str="10    3333    abc123"; var rg; rg=/[0-9]{1,}|s/ig; var newstr=str.replace(rg, ""); docume