题目描述:删除字符串开始及末尾的空格,并且把数组中间的多个空格(如果有)转化为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; }