第一题: 过滤空格(100分)
题目内容:
给定一个字符串a,将字符串a的前后的所有空格过滤掉,注意中间的空格要保留。
输入格式:
输入只包括一行,一个只包括小写字母和空格的字符串,长度不超过 1000 个字符。
输出格式:
输出按照题目要求过滤空格后的字符串。
输入样例:
ab c
输出样例:
ab c
方法一
#include<iostream> // 引入输入输出流库
using namespace std; // 使用标准命名空间,简化代码
int main() {
char ch[1001] = { 0 }; // 定义一个字符数组 ch,大小为 1001,初始化为全 0
cin.getline(ch, 1001); // 读取一行输入到字符数组 ch 中
int i, j;
// 找到第一个非空格字符的索引 i
for (i = 0; ch[i] == ' '; i++) ;
// 找到最后一个非空格字符的索引 j
for (j = 1000; ch[j] == 0; j--) ;
// 输出从索引 i 到 j 的字符
for (int k = i; k <= j; k++)
cout << ch[k]; // 输出字符数组 ch 中的字符
return 0; // 程序正常结束
}
方法二
#include <bits/stdc++.h> // 引入所有标准库头文件
using namespace std; // 使用标准命名空间,简化代码
int main() {
int i, j;
char a[1010]; // 定义一个字符数组 a,大小为 1010
cin.getline(a, 1010); // 读取一行输入到字符数组 a 中
// 找到第一个非空格字符的索引 i
for (i = 0; a[i] == ' '; i++);
// 将字符串 a 的第一个非空格字符后的部分移到字符串的开头
for (j = 0; a[j] = a[i]; i++, j++);
// 找到最后一个非空格字符的索引 i
for (i = strlen(a) - 1; a[i] == ' '; i--);
// 在找到的最后一个非空格字符后添加字符串结束符 '\0'
a[i + 1] = 0;
cout << a << endl; // 输出处理后的字符串
return 0; // 程序正常结束
}