Another option:
Code:
#include <stdio.h>
int main (void)
{
const char *oldname[] =
{
"000file.bnf", "0001file.bnf", "02filename.bnf",
};
char newname[256];
size_t i;
for ( i = 0; i < sizeof oldname / sizeof *oldname; ++i )
{
char num[256], name[256];
if ( sscanf(oldname[i], "%255[0123456789]%255[^.].bnf", num, name) == 2 )
{
sprintf(newname, "%s%s.bnf", name, num);
printf("oldname = \"%s\", newname = \"%s\"\n", oldname[i], newname);
}
}
return 0;
}
/* my output
oldname = "000file.bnf", newname = "file000.bnf"
oldname = "0001file.bnf", newname = "file0001.bnf"
oldname = "02filename.bnf", newname = "filename02.bnf"
*/