假设我有一个名为“ ____。srt”的文件,其中___可以是任何东西。
我正在尝试通过添加'1'来更改其名称,因此它看起来像这样的“ ____ 1.srt”。
使用CMD argv [1]从参数读取文件。
void main(int argc,char* argv[]){
char* pt;
pt = strstr(argv[1],".srt\0"); // checks if end of input-string is .srt
if( pt == NULL)
{
fprintf(stdout,"Invalid input.\nInput file must be inputfile.srt\n");
fprintf(stdout,"Program will now exit\n");
return;
}
strcpy(pt,'1');
strcat(argv[1],".srt");
fprintf(stdout,"%s file was created.\n",argv[1]); }
这似乎不起作用。有人可以找出问题所在吗?我将不胜感激。
谢谢
最佳答案
经过几次修改,您的代码看起来像这样,我希望它能工作。在您的代码中,您没有正确处理字符串。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc,char* argv[]){
char* pt;
int flag;
pt = strstr(argv[1],".srt\0"); // checks if end of input-string is .srt
if( pt == NULL)
{
fprintf(stdout,"Invalid input.\nInput file must be inputfile.srt\n");
fprintf(stdout,"Program will now exit\n");
return 0;
}
pt = (char*)malloc(sizeof(argv[1] + 1)); // filename length + number or additional digits
// Needed for using strncpy function
strncpy(pt, argv[1], strlen(argv[1]) - 4); // copying filename except the .srt extention.
strcat(pt, "1.srt"); //using pt for new filename
flag = rename(argv[1], pt);
if (flag == 0) // rename returns 0 on success
fprintf(stdout,"New file name: %s\n", pt);
else
fprintf(stdout,"An error occurred\n");
}
关于c - 使用命令提示符在C中重命名SRT文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43391734/