c語言實現將文件中小寫字母轉為大寫字母


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char *args[]){
    FILE *fp;
    char *s, *sp;
    int file_size, read_size;
    if(argc != 2){
        fprintf(stdout, "usage: change filename\n");
        exit(EXIT_FAILURE);
    }
    if((fp = fopen(args[1], "rb+")) == NULL){
        fprintf(stderr, "Can't open %s\n", args[1]);
        exit(EXIT_FAILURE);        
    }
    
    fseek(fp, 0L, SEEK_END);    //文件指針移動到文件末尾
    file_size = ftell(fp);
    rewind(fp); //文件指針移動到文件開頭

    //為字符數組分配內存,然后讀入數據
    s = (char *)calloc(file_size, 1);
    read_size = fread(s, 1, file_size, fp);
    fclose(fp);
    if(read_size != file_size){
        fprintf(stdout, "Can't read all massage!\n");
        exit(EXIT_FAILURE);
    }

    //轉換字母
    sp = s;
    while(*sp){
        if(islower(*sp))
            *sp = toupper(*sp);
        sp++;
    }

    //先清除源文件數據,然后向文件寫入字符數組數據
    if((fp = fopen(args[1], "wb+")) == NULL){
        fprintf(stderr, "Can't open %s\n", args[1]);
        exit(EXIT_FAILURE);        
    }
    fwrite(s, 1, read_size, fp);
    fclose(fp);
    return 0;
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM