c++练习3 新浪面试题
来源:互联网 发布:附近陌生人聊天软件 编辑:程序博客网 时间:2024/06/05 10:30
新浪面试题:删除字符串中多余的空格
给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
比如 “ I like http://hi.baidu.com/mianshiti ” 会变成 "I like http://hi.baidu.com/mianshiti"。
笔者有以下疑问,忘大师指点:若函数的参数是一个string类型怎么做?中途是否一定要通过字符数组来转换。
下面是我编写的程序:
#include <iostream>
using namespace std;
void removeExtraSpace(char*str)
{
if (str ==NULL)
return;
char *p =str;
boolafter_char_space = false; //是否字符之后的空格
int neworder= 0;
while(*p !=NULL)
{
if(*p!=' ') //不为空
{
str[neworder++] = *p;
after_char_space = true;
}
else if(after_char_space) //字符后的空
{
str[neworder++] = *p;
after_char_space = false;
}
p++;
}
if(str[neworder-1]== ' ')
str[neworder-1] = '\0';
else
str[neworder] = '\0';
}
int main()
{
char str[] =" I like liuxi ";
removeExtraSpace(str);
cout<<"变化后为"<<str<<"测试最后的空格是否删除"<<endl;
system("pause");
return 0;
}
其他一些程序参考,思路类似
voidremoveExtraSpace(char* str)
{
bool keep_space = false;
int new_str_end = 0;
for (int i = 0; str[i]; ++i)
{
if (str[i] != ' ')
{
str[new_str_end++] = str[i];
keep_space = true;
} else if (keep_space)
{
str[new_str_end++] = str[i];
keep_space = false;
}
}
if (new_str_end > 0 &&str[new_str_end - 1] == ' ')
{
str[new_str_end - 1] = '\0';
} else
{
str[new_str_end] = '\0';
}
}
voidremoveExtraSpace(char *str)
{
char *head;
int count=0,p=0,len = strlen(str);
head = str;
while(*str)
{
if(count>0 && count<len-1)
{
if(*str != ' ')
{
head[p] = *str;
p++;
}
if(*str == ' ' && *(str+1)!= ' ')
{
head[p] = *str;
p++;
}
}
str++;
count++;
}
head[p]='\0';
}
- c++练习3 新浪面试题
- 新浪面试题
- 新浪面试题
- 新浪php工程师面试题
- 新浪php工程师面试题
- 精选新浪php面试题
- day10_python新浪自动化面试题
- 练习迅雷面试题
- 迅雷面试题练习
- 面试题-练习一
- 面试题练习
- 面试题练习
- 面试题练习
- 腾讯面试题练习
- 面试题练习01
- c语言面试题3
- C语言面试题3
- C-C++面试题3
- Linux---游戏
- 嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(五)
- ubuntu下inode拨号上网
- 嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(六)
- 【菜鸟笔记】Ubuntu 恢复默认面板
- c++练习3 新浪面试题
- u-boot移植时出现inline function 'coloured_LED_init' cannot be declared weak及相关错误时的解决办法!
- error:undefined reference to `coloured_LED_init'及相关错误时的解决办法!
- Android wifi开发
- Arduino 电子积木 串口RFID模块
- Visual Studio 2010 快捷键
- Set Component Changed and Search Edit?
- 如何学好C语言
- C语言冒泡算法