07/09/25 13:25:41
>>263
#include<stdio.h>
char *addext(char *cs, int size, char *org, char *ext) {
char *p;
for (p = org; *p != '.' && *p != '\0'; p++)
continue;
strncpy(cs, org, (p - org));
strncpy(cs + (p - org), ext, strlen(ext));
strncpy(cs + (p - org) + strlen(ext), p, strlen(p));
return cs;
}
int copy(char *from, char *to) {
FILE *src = fopen(from, "r");
if (!src) return -1;
FILE *dst = fopen(to, "w");
int c, n;
for (n = 0; (c = getc(src)) != EOF; n++) {
putc(c, dst);
}
fclose(src);
fclose(dst);
return n;
}
int main(int argc, char **argv) {
int size = 256;
char dst[size], *src = argv[1];
if (1 < argc && 0 < copy(src, addext(dst, size, src, ".abc"))) {
printf("copy `%s' -> `%s'", src, dst);
}
}