-1
I need to keep several names (compounds) of different people, so that I can return to the user the first letters of each name, and the last name of each person. That’s what I’ve done so far:
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define T 100
int main(){
char texto[T], texto2[200],texto1[T], texto3[T],logins, ultimo[100],*ultimo2;
char *a = texto;
int n = 0, conta = 0, k, i, p;
printf("Quantos nomes serao cadastrados: ");
scanf("%i",&k);
for(int x=1;x<=k;x++){
printf("\nDigite um nome completo: ");
//texto2 armazena os nomes completos, e tem seu valor alterado a cada looping
scanf(" %[^\n]s",texto2);
for (i = 0;texto2[i] != '\0';i++){
if (texto2[i] == ' ' && texto2[i+1] != ' ')
conta++;
}
//Exibir o numero de palavras do nome atual.
//printf("%i\n",conta+1);
//colocando o strcat(texto,texto2); dentro de um if eu so armazeno espaço na memoria se a string tiver 3 palavras, caso
//contrario ele não armazena, entao não precisa de um else.
while( conta +1 <3){
//contador é zerado no inicio dese bloco de instrução
conta=0;
printf("\nDigite um nome completo, com pelo menos 3 palavras: ");
scanf(" %[^\n]s",texto2);
//contador
for (i = 0;texto2[i] != '\0';i++){
if (texto2[i] == ' ' && texto2[i+1] != ' ')
conta++;
}
}
if (conta +1 >= 3){
strcat(texto,texto2);
//Texto recebe texto2 e logo em seguida recebe uma virgula
}
//Esse if remove o bug da virgula no final
if (x!=k) {
strcat(texto,", ");
}
conta = 0;
//a variavel conta precisa ser igualada a zero a cada looping, porque se naão ela vai ficar so aumentando permanentemente.
}
do {
printf("MENU DE OPCOES\n 1- Lista de nomes completos\n 2- Listar o ultimo nome de cada pessoa\n 3- Listar o nome de login\n 4- Sair\n");
printf("Digite a opcao desejada\n\t\t>>>");
scanf("%d", &p);
switch(p){
case 1: printf(" Os nomes listados sao %s\n", texto);
break;
case 2: while(*a){
if(*a == ' '){
ultimo2 = a + 1;
*a = 0;
}
a++;
}
printf("O ultimo nome sera: %s\n",ultimo2);
break;
case 3:
printf("O nome de login e: \n", texto);
break;
case 4: return 0;
break;
}
}
while (p != '4');
//Exibindo a variavvel texto so pra ter certeza que ta tudo dando certo.
printf("texto - %s",texto);
return 0;
}
Please Edit the Question to limit it to a specific problem with enough Detail to identify an adequate Answer.
–