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
—e imprima na saída padrão os nomes das fotos numeradas de
até
. Para isso vamos usar:
- A biblioteca
<stdio.h>
paraprintf
esnprintf
. - Um buffer de caracteres grande o bastante para armazenar cada nome montado.
- Um laço
for
que itera deaté , 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 qualquer (por exemplo
).
main
de exemplo, onde chamamos \(rename_photos\)
com prefixo "foto"
, sufixo ".jpg"
e um valor de
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;
}