笔试是一紧张好像写的有问题,回来后又自己写了下。
#include "iostream"
#include "string.h"
using namespace std;
void removeBlank(char* str)
{
int len=strlen(str);
bool isEnd=false;//记录是否到了字符串的结尾
int i;
for(i=0;i<len;i++)
{
while(str[i]==' ' && str[i]!='\0')
i++;
if(i==len)
isEnd=true;
//cout<<i; 测试用
while(str[i]!=' ' && str[i]!='\0')
{
cout<<str[i];
i++;
}
if(!isEnd)
cout<<" ";
}
}
int main(){
char str[]=" You like china. ";
removeBlank(str);
cout<<endl;
return 0;
}
我也看了下网上别人的代码,感觉这个也挺好,就参考下
点击打开链接
#include<stdio.h>
#include<string.h>
void removeExtraPalce(char * str);
main(){
char * str = " I like http://hi.baidu.com/mianshiti ";
removeExtraPalce(str);
return 0;
}
void removeExtraPalce(char * str)
{
int i,count=0;
int length =strlen(str);
bool begin;
if(str[0] != ' '){
begin=true;
}else{
begin=false;
}
printf("[");
for(i=0;i<length;i++){
//去掉字符串头部空格
if(str[i]==' ' && !begin){
if(i<length-1 && str[i+1] !=' '){
begin=true;
}
continue;
}
if(begin){
if(str[i] == ' '){
if(i<length-1 && str[i+1] !=' '){
//只输出中间的一个空格
printf("%c",str[i]);
count=0;
}
count++;
continue;
}
}
printf("%c",str[i]);
}
printf("]\n");
}