首页 > 其他 > 详细

【PAT 1009】说反话

时间:2019-10-12 20:49:31      阅读:150      评论:0      收藏:0      [点我收藏+]

1、CODE

#include <stdio.h>
#include <string.h>
#include <fstream>
#include <iostream>
using namespace std;
#define maxn 100

void back(char str[]) {
    char word[maxn][maxn];
    int len = strlen(str), r = 0, h = 0;
    for (int i = 0; i < len; i++) {
        if(str[i] != ' ') {
            word[r][h++] = str[i];
        } else {
            word[r][h] = '\0';
            r++;
            h = 0;
        }
    }

    for (int i = r; i >= 0; i--) {
        printf("%s", word[i]);
        if(i != 0) printf(" ");
    }
    printf("\n");
    return;
}

int main() {
    char str[maxn];
    ifstream fin;
    fin.open("/home/zzz/input.txt");
    while(fin.getline(str,maxn)) {
        back(str);
    }
    fin.close();

//    cin.getline(str, maxn);
//    back(str);
    return 0;
}

2、TEST

技术分享图片

3、NOTE

3.1 不要再使用gets()这个函数啦!!!!

这个函数会把换行符读进来,而且在c++11中已经不建议使用,c++14完全丢弃

可以使用cin.getline(),而且这个函数还不会把回车符吃进去

3.2 c++文件读写

    ifstream fin;
    fin.open("/home/zzz/input.txt");
    while(fin.getline(str,maxn)) {
        back(str);
    }
    fin.close();

3.3 "边读边增长"

word[r][h++] = str[i];

【PAT 1009】说反话

原文:https://www.cnblogs.com/huangming-zzz/p/11663754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!