1009 说反话 (20 分)

该博客介绍了一个C语言程序,用于读取输入的字符串,并记录空格位置。程序使用while循环读取字符,遇到空格时记录其位置。之后,通过倒序遍历空格位置,输出从最后一个空格到字符串末尾的部分,再输出从第一个空格到倒数第二个空格的内容,最后输出字符串开头到第一个空格的部分。此程序巧妙地实现了字符串的重新排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

伪代码:

1.读入数据;

2.用记下空格的位置;

3.用循环(这里的count用起来好像指针hhh)来完成对应的输出;

#include <stdio.h>
int main(){
    char a[100000],b[100000];
    int i=0,count=0;
    while((a[i]=getchar())!='\n'){
        if(a[i]==' ')
            b[count++]=i;
        i++;
    }
    for(i=b[--count]+1;count>=0;i=b[--count]+1){
        while(a[i]!=' '&&a[i]!='\n'){
            printf("%c",a[i]);
            i++;
        }
        putchar(' ');
    }
    for(i=0;a[i]!=' '&&a[i]!='\0';i++)
        printf("%c",a[i]);
    return 0;
}

第一次输入的时候就不用for循环了,这里while循环更加简洁有力(未知循环次数);

第一个for循环那里,注意是--count;

而且初始化的时候不写"i=b[count-1]+1"而是写"i=b[--count]+1",这是因为前者初始化后count的知并没有改变,相当于第一个count被用了两次,打印出两个的"Come";而后者就避免了这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值