Las funciones clave son _findfirst, _findnext y _findclose
struct _finddata_t file_info;
char discard[] = "XYZ.com";
char dir[256] = "c:\\folder\\";
char old_path[256];
char new_path[256];
intptr_t handle = 0;
memset(&file_info,0,sizeof(file_info));
strcpy(old_path,dir);
strcat(old_path,"*.avi");
handle = _findfirst(old_path,&file_info);
if (handle != -1)
{
do
{
char *new_name = NULL;
char *found = NULL;
new_name = strdup(file_info.name);
while ((found = strstr(new_name,discard)) != 0)
{
int pos = found - new_name;
char* temp = (char*)malloc(strlen(new_name));
char* remain = found+strlen(discard);
temp[pos] = '\0';
memcpy(temp,new_name,pos);
strcat(temp+pos,remain);
memcpy(new_name,temp,strlen(new_name));
free(temp);
}
strcpy(old_path,dir);
strcat(old_path,file_info.name);
strcpy(new_path,dir);
strcat(new_path,new_name);
rename(old_path,new_path);
free(new_name);
}while(_findnext(handle,&file_info) != -1);
}
_findclose(handle);
+1 por evidente, sabes qué y buena elección de programa de televisión xD. – zeboidlund