Boa noite, galera. Gostaria de uma forcinha para resolver o seguinte problema de implementar uma função que recebe como parâmetro uma cadeia de caracteres com o nome completo de uma pessoa e retorne um ponteiro com o último nome encontrado.
A função tem que obedecer esse formato: char *ultimo_nome(char *nome_completo).
Meu código ficou mais ou menos assim, de uma forma bem falha. Tenho bastante dificuldade em manipulação de strings. Por favor, me ajudem. Obrigado!!
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
char *ultimo_nome (char *nome_completo){
int i, j;
char c;
int barra = 1;
int n = strlen(nome_completo);
for (i=0; nome_completo[i] != '\0'; i++){
if (nome_completo[i] == ' ')
barra+=1;
}
char *p = (char *)malloc((n/barra) * sizeof(char));
for (i=(barra-1)*(n/barra), j=0; n>i; i++){
p[j++] = nome_completo[i];
}
return p;
}
int main(void){
char pal[] = "Rafael de Moura Machado";
char *res = ultimo_nome(pal);
printf("%s[]", res);
return 0;
}