题目描述:删除字符串开始及末尾的空格,并且把数组中间的多个空格(如果有)转化为1个。
例:输入“ I am a student! ”,输出“I am a student!”。
#include <iostream>
using namespace std;
char* DeleteBlanks(char* str)
{
int i = 0;
int j = 0;
while (str[j] == ' ') //处理开头的空格
{
j++;
}
int len = strlen(str) - 1;
while (str[len] == ' ') //处理结尾的空格
{
len--;
}
str[len + 1] = '\0';
while (str[j] != '\0')
{
while(str[j] == ' ')
{
j++;
}
//将中间的连续的空格转化为1个
if (str[j - 1] == ' ' && str[j] != ' ' && i != 0)
{
str[i++] = ' ';
}
str[i++] = str[j++];
}
str[i] = '\0';
return str;
}
int main()
{
char str[100];
cout << "请输入字符串:";
gets(str);
cout << "该字符串长度为:" << strlen(str) << endl;
cout << DeleteBlanks(str) << endl;
cout << "处理空格后的字符串长度为:" << strlen(str) << endl;
return 0;
}

711

被折叠的 条评论
为什么被折叠?



