Você é um desenvolvedor de um sistema operacional famoso, e está criando um programa de gerenciador de arquivos. Nesse gerenciador de arquivos, você quer fazer um programa que renomeia uma série de imagens numeradas sequencialmente: “foto1.jpg”, “foto2.jpg”, “foto3.jpg” . . . até “fotoN.jpg”.
Escreva uma função que receba um prefixo (ex: “foto”), um sufixo (ex: “.jpg”) e um inteiro N, e printe os nomes das N fotos a serem renomeadas usando um laço for.
Dica: pesquise sobre concatenação de strings em C.

Passo 1

O objetivo é criar em C uma função que receba três parâmetros—um prefixo de nome, um sufixo e um inteiro N—e imprima na saída padrão os nomes das fotos numeradas de 1 até N. Para isso vamos usar:
  • A biblioteca <stdio.h> para printf e snprintf.
  • Um buffer de caracteres grande o bastante para armazenar cada nome montado.
  • Um laço for que itera de 1 até N, concatenando prefixo + número + sufixo a cada iteração.

Passo 2

Incluímos as bibliotecas necessárias e declaramos a função \(rename_photos\). Dentro dela reservamos um array de char para montar cada nome de arquivo, e usamos snprintf para juntar prefix, o índice i e suffix. Depois imprimimos esse nome com printf.

Passo 3

Mostramos também uma função main de exemplo, onde chamamos \(rename_photos\) com prefixo "foto", sufixo ".jpg" e um valor de qualquer (por exemplo ).

Resposta

#include <stdio.h>

void rename_photos(const char *prefix, const char *suffix, int N) {
    char filename[\(256\)];  // buffer para armazenar o nome completo
    for (int i = \(1\); i <= \(N\); i++) {
        // monta uma string no formato prefix + número + suffix
        snprintf(filename, sizeof(filename), "%s%d%s", prefix, i, suffix);
        // imprime o nome gerado
        printf("%s\n", filename);
    }
}

int main() {
    int N = \(5\);  // exemplo de quantas fotos renomear
    rename_photos("foto", ".jpg", N);
    return 0;
}

Exercícios relacionados