C语言 逆序显示文本内容并保存

来源:互联网 发布:高级算法 编辑:程序博客网 时间:2024/05/16 18:11

【说明】

    对指定文件中的内容或传入的字符串参数逆序打印并保存到文件中。


【命令行示例】

    [root@localhost]$ ./reverseStr test.txt


    这条命令的含义是读取 ./test.txt 文件中的内容,将文件内容顺序反向存储到 outPut.txt 文件中。


    [root@localhost]$ ./reverseStr "Hello world"


    这条命令的含义是将 "Hello world" 逆序打印到控制台,并存储到文件 outPut.txt 文件中。


【源码】

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(char argc, char **argv){    FILE *pFileRead = NULL;    char *pstrTarget = NULL;    char cRead;    unsigned long ulCountWord = 0;    char *pstrContent = NULL;    char *pstrReverse = NULL;    FILE *pFileOutput = NULL;        if(argc == 2){        pstrTarget = argv[1];        if(strstr(pstrTarget, ".txt")){     // 传入参数是文件名            if(NULL == (pFileRead = fopen(pstrTarget, "r"))){                printf("open file %s error!\n", pstrTarget);            }else{                while(EOF != fscanf(pFileRead, "%c", &cRead)){                    ++ulCountWord;                }                printf("%ld bytes been read.\n", ulCountWord);                pstrContent = (char *)malloc((size_t)ulCountWord);                fseek(pFileRead, 0, SEEK_SET);                printf("%d items been read.\n", fread(pstrContent, sizeof(char), (size_t)ulCountWord, pFileRead));                pstrReverse = pstrContent;                printf("content: %s\n", pstrReverse);                pstrReverse += ulCountWord - 1;                if(NULL == (pFileOutput = fopen("outPut.txt", "w"))){                    printf("open file reverseOut.txt error!\n");                }else{                    for( ;ulCountWord > 0; ulCountWord--){                        fprintf(pFileOutput, "%c", *pstrReverse);                        --pstrReverse;                    }                    fprintf(pFileOutput, "%c", *pstrReverse);                    fclose(pFileOutput);                }                free(pstrContent);                fclose(pFileRead);            }        }else{      // 传入参数是字符串内容            ulCountWord = (unsigned long)strlen(pstrTarget);            pstrReverse = pstrTarget;            printf("content: %s\n", pstrReverse);            pstrReverse += ulCountWord;            for( ; ulCountWord > 0; ulCountWord--){                printf("%c", *pstrReverse);                --pstrReverse;            }            printf("%c\n", *pstrReverse);        }    }else{        printf("invalid argument, which should be a filename or a string.\n");    }    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 天猫流量大淘宝怎么办 拼多多商家不退款怎么办 苹果手机开流量显示e怎么办 苹果手机有服务流量打不开怎么办 苹果七plus流量打不开怎么办 苹果手机突然打不开流量怎么办 天猫商家迟迟不发货怎么办 苹果7开不开机了怎么办 苹果机黑屏了开不起来怎么办 美团收银机连不上网怎么办 6s换电池后黑屏怎么办 苹果上的软件打不开也删不掉怎么办 苹果手机打开软件打不开怎么办 苹果电脑下载的软件打不开怎么办 苹果手机下载的软件都打不开怎么办 苹7果屏幕黑屏怎么办 苹果6s手机打不开怎么办 苹果ipad密码输入打不开怎么办 苹果平板黑屏了打不开怎么办 苹果6sp电影商城打不开怎么办 苹果6应用商城打不开怎么办 游戏下载好了安装不上怎么办 苹果5s应用商店不见了怎么办 id被停用手机白板打不开怎么办 苹果6s下载不了软件怎么办 苹果下载的软件打不开怎么办 苹果6s下不了app怎么办 苹果手机因为闪退打不开了怎么办 天猫方糖坏了怎么办 天猫魔盒的遥控器坏了怎么办 天猫盒子没声音怎么办 天猫魔盒播放声音很低怎么办 天猫魔盒3a卡顿怎么办 天猫网络机顶盒打不开了怎么办 天猫机顶盒遥控器丢了怎么办 天猫机顶盒没有遥控器怎么办 天猫机顶盒很卡怎么办 天猫机顶盒没遥控器怎么办 天猫机顶盒看不了怎么办 天猫机顶盒变黑白怎么办 天猫精灵丢了怎么办