Enviado em 11/06/2024 - 00:49h
tenho a seguinte função em C99 para uma agenda usando estrutura binaria:void changeContact(PhoneBook **root, char *str) { if ((*root) != NULL) { if (strcasecmp((*root)->name, str) > 0) { changeContact(&(*root)->left, str); } else { if (strcasecmp((*root)->name, str) < 0) { changeContact(&(*root)->right, str); } else { if (strcmp((*root)->name, str) == 0) { int phone; message6(); printf("\n\tNAME: %s", (*root)->name); scanf(" %20[^\n]s", (*root)->name); printf("\n\tNEW PHONE: "); scanf(" %d", &phone); (*root)->phone = phone; message7(); } } } } else { message8(); } }
void changeContact(PhoneBook **root, char *str) { int new_phone; char new_name[20]; if ((*root) != NULL) { if (strcasecmp((*root)->name, str) > 0) { changeContact(&(*root)->left, str); } else { if (strcasecmp((*root)->name, str) < 0) { changeContact(&(*root)->right, str); } else { if (strcmp((*root)->name, str) == 0) { int choice; message6(); printf("\n\tCURRENT NAME: %s", (*root)->name); printf("\n\tCURRENT PHONE: %d", (*root)->phone); printf("\n\n\tDo you want to change the name or phone?\n\tEnter (1-Name, 2-Phone, 0-Cancel): "); scanf("%d", &choice); switch(choice) { case 1: printf("\n\tNEW NAME: "); scanf("%20[^\n]s", new_name); strcpy((*root)->name, new_name); //(*root)->name = new_name; message7(); break; case 2: printf("\n\tNEW PHONE: "); scanf("%d", &new_phone); strcpy((*root)->phone, new_phone); //(*root)->phone = new_phone; message7(); break; default: printf("\n\tNO CHANGES.\n"); } } } } } else { message8(); } }
strcpy((*root)->name, new_name); (*root)->name = new_name; strcpy((*root)->phone, new_phone); (*root)->phone = new_phone;
Enviado em 11/06/2024 - 00:49h
A diferença entre copiar uma string com strcpy e atribuir diretamente uma variável é que a função strcpy realiza a cópia da string para a posição de memória apontada pelo ponteiro, enquanto a atribuição direta apenas direciona o ponteiro para a nova string, sem realizar cópia. Em termos de estrutura de dados e lógica, a escolha entre copiar ou atribuir diretamente depende do contexto da aplicação e da necessidade de manter a integridade dos dados. No caso de uma árvore binária, geralmente é mais seguro e correto utilizar a função strcpy para garantir a correta manipulação e armazenamento das strings.Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Instalar debian testing (13) "por cima" do debian 12 (3)
meu linux congela [RESOLVIDO] (5)
Preciso atualizar o Vim [RESOLVIDO] (8)
QUERO REVIVER UM COMPUTADOR ANTIGO, MAS TIVE PROBLEMAS COM OS LINUX QU... (9)