Fazer uma função para:
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ço
  • origem[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;
}

Exercícios relacionados