文件名字替换问题
怎么把FILE *fip =fopen(filename, "rb"); 如果那个打开的文件名是abcd.txt 如何把保存的文件名前面不变后面变成abcd.enc例如
FILE *fip =fopen(filename, "rb");
FILE *fop =fopen(XXXXXXX, "wb");
下面那个XXXX要是上面打开那个文件名的后4位改成.enc
#include <stdio.h> #include <string.h> #include <conio.h> // 函数原型 char* Trim(char* str, char ch); char* ChangeExtendName(char* FileName, char* Extend); // 程序入口 void main(void) { char FileName[FILENAME_MAX] = "abcd.txt"; ChangeExtendName(Trim(FileName, ' '), ".enc"); printf_s(FileName); _getch(); } // 删除字符串str的前导和结尾指定字符,返回修改后的字符串 // 注意:操作结果改变原字符串 char* Trim(char* str, char ch) { if (*str == '\0') { return str; } char* p = str + strlen(str) - 1; while (*p == ch) { *p-- = '\0'; } p = str; while (*p++ == ch) { ; // 空循环 } return (p - 1); } // 修改文件FileName的扩展名为Extend // 注意:操作结果改变原字符串 char* ChangeExtendName(char* FileName, char* Extend) { char* p = strrchr(FileName, '.'); if (p != NULL) { *p = '\0'; } return strcat(FileName, Extend); }