南京理工大学MOOC程序设计基础(Ⅰ) SPOC | 第6章作业4答案详细解析

第一题: 过滤空格(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;  // 程序正常结束
}
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值