码迷,mamicode.com
首页 > 其他好文 > 详细

删除字符串中多余的空格

时间:2014-05-13 07:32:17      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   tar   

作者 : 卿笃军


今天遇到的一道笔试题,后来百度 了一下,原来是一道新浪的面试题。

题目大意是这样:给你一个任意字符串,要求你删除字符串中多余的空格。

示例:(‘_‘表示空格)

1)"12__abc_98_"     ==》 "12_abc_98"     

2)"______65_21__54__3_89___"  ==》  "65_21_54_3_89"


思路:设2个下标i,pos一个用于遍历字符串(i),另外一个用于指向当前已经拷贝到的位置(pos)。

具体拷贝(覆盖)思路:

一、遇到非空格就开始拷贝,同时设置开关space = 1。

二、当遇到空格的时候,拷贝一个空格(因为开关space = 1执行一次后就关闭了space = 0)。

三、尾部处理。

#include <stdio.h>

int main()
{
	char str[100];
	int i,space = 0;  //一次性开关设置
    int pos = 0;   	  //标记新的字符串
	
	gets(str);
	//遍历整个字符串
    for(i = 0; str[i] != ‘\0‘; i++)      	
    {
        if(str[i] != ‘ ‘)	               
        {	
            str[pos++] = str[i];		
            space = 1;		           //一次性开关设置
        }
		else 
		{
			if(space == 1)             //使用一次就置为0,相当于只拷贝1次空格
			{
				str[pos++] = str[i];	
				space = 0;
			}
        }
    }
    //剔除字符结尾的空格,并加上结束符
    if(pos > 0 && str[pos-1] == ‘ ‘)	
        str[pos-1] = ‘\0‘;
    else	                        
        str[pos] = ‘\0‘;

	puts(str);
	
	return 0;
}

参考文献:liuxialong的专栏,新浪微博笔试题:删除字符串中多余的空格:http://blog.csdn.net/liuxialong/article/details/6543598


删除字符串中多余的空格,布布扣,bubuko.com

删除字符串中多余的空格

标签:style   blog   class   code   c   tar   

原文地址:http://blog.csdn.net/qingdujun/article/details/25621111

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!