Fazer uma função para:
copiar os caracteres anteriores ao espaço no vetor indicado pelo segundo parâmetro.
copiar os caracteres anteriores ao espaço no vetor indicado pelo segundo parâmetro.
Passo 1
Beleza, a ideia aqui é criar uma função em C que receba duas “strings” (vetores de
char
), onde a gente vai varrer a segunda string até achar um espaço em branco e copiar todos os caracteres anteriores a esse espaço na primeira string. Conteúdo: manipulação de strings com vetores em C. Vamos precisar de:- Um loop que percorra a string fonte até encontrar espaço ou
'\0'
- Índices (ou ponteiros) pra copiar caractere a caractere
- Lembrar de terminar a string destino com
'\0'
Passo 2
Vamos definir o protótipo da função e as variáveis iniciais. Fica assim:
void copiaAntesEspaco(char destino[], const char origem[]);
Aqui
origem
é onde tá a frase, e destino
vai receber os caracteres até o espaço. Começamos com um índice i = 0
pra percorrer origem
e j = 0
pra preencher destino
.Passo 3
Agora, entramos num loop que lê
origem[i]
enquanto esse caractere não for espaço (' '
) nem fim de string ('\0'
):while (origem[i] != ' ' && origem[i] != '\0') {
destino[j] = origem[i];
i++;
j++;
}
Explicando:
origem[i] != ' '
garante que a gente pare no primeiro espaçoorigem[i] != '\0'
cuida do caso de não haver espaço (copia tudo até o fim)
Passo 4
Depois de sair do loop,
j
aponta pra posição logo depois do último caractere copiado. Aí a gente só finaliza a string destino com o caractere nulo:destino[j] = '\0';
Isso diz pro C que ali termina a string.
Resposta
#include <stdio.h>
// Função que copia para 'destino' tudo até o primeiro espaço em 'origem'
void copiaAntesEspaco(char destino[], const char origem[]) {
int i = 0, j = 0;
// copia enquanto não encontrar espaço ou '\0'
while (origem[i] != ' ' && origem[i] != '\0') {
destino[j] = origem[i];
i++;
j++;
}
// finaliza a string destino
destino[j] = '\0';
}
// Exemplo de uso
int main() {
char frase[] = "Olá mundo, tudo bem?";
char palavra[50];
copiaAntesEspaco(palavra, frase);
printf("Primeira palavra: %s\n", palavra); // deve imprimir "Olá"
return 0;
}