文件名字替换问题
怎么把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);
}
