fernando306 Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 Olá pessoal! Vamos supor que eu tenha a seguinte situaçãoint hora_minuto = 2359; //Estou simulando a situação de quando eu leio o registro do meu RTC. Vem hora e minuto juntos, não tem jeito! :wacko: sprintf(buffer, "Hora e Minuto: %d", hora_minuto); // buffer é a string que vai ser mostrada no displayLCD_printxy(1,2,buffer); // Imprime a string no LCDAí o resultado no LCD fica "Hora e Minuto: 2359".-> Como eu poderia fazer para inserir o ":" para exibir 23:59 ao invés de 2359 ??ps: Para os curiosos, estou programando um PIC... Mas a dúvida está mais pra "C" do que pra PIC rsrsrs.. Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 Uma forma de separar os algorismos é fazer uma divisão inteira de 2359 por 100 (resultado 23) e depois obter o 59 com 2359-23*100. Outra opção é converter para string e incluir o caractere ':'. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando306 Postado Julho 7, 2010 Autor Denunciar Share Postado Julho 7, 2010 Olá Jonathan! Muito obrigado! Sim, estou convertendo para string (sua segunda opção) usando o sprintf, armazenando a string em "buffer" para depois jogar no LCD. Como eu faço para incluir o caractere ":" nesse caso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 Você pode utilizar as funções da biblioteca string.h. Tente algo assim:char* str1="23"; char* str2="59"; char final[5]; strcpy(final,str1); strcat(final,":"); strcat(final,str2); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando306 Postado Julho 7, 2010 Autor Denunciar Share Postado Julho 7, 2010 Humm, ótima idéia. Entendi o uso to strcpy e strcat, você foi concatenando os valores em uma string final. Só tenho uma pergunta: Se eu tenho uma variável de 4 digitos, como eu "quebro" ela em duas variáveis de dois dígitos? Pergunto isso porque quando eu leio do registro do PIC os valores vem "colados", não tenho opção de ler eles separadamente. Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 Nesse caso você pode usar a função memcpy.Algo assim:char* str="2359"; char str1[3]; char str2[3]; str1[2]=0; str2[2]=0; memcpy(str1,str,2); memcpy(str2,str+2,2); char final[5]; strcpy(final,str1); strcat(final,":"); strcat(final,str2); Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fernando306
Olá pessoal!
Vamos supor que eu tenha a seguinte situação
int hora_minuto = 2359; //Estou simulando a situação de quando eu leio o registro do meu RTC. Vem hora e minuto juntos, não tem jeito! :wacko:
sprintf(buffer, "Hora e Minuto: %d", hora_minuto); // buffer é a string que vai ser mostrada no display
LCD_printxy(1,2,buffer); // Imprime a string no LCD
Aí o resultado no LCD fica "Hora e Minuto: 2359".
-> Como eu poderia fazer para inserir o ":" para exibir 23:59 ao invés de 2359 ??
ps: Para os curiosos, estou programando um PIC... Mas a dúvida está mais pra "C" do que pra PIC rsrsrs..
Abraços!
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.