DiegoAugusto Postado Novembro 17, 2012 Denunciar Share Postado Novembro 17, 2012 Galera, tem como a função scanf() ler uma sequência de char no terminal excluindo o " "(espaço em branco).Exemplo:Lendo no terminal: # * # * Queria saber uma forma de ler esses valores usando: scanf("%c", &variavel1); scanf("%c", &variavel2); scanf("%c", &variavel3); scanf("%c", &variavel4); Mas sem atribuir as variaveis o valor " "(espaço em branco). Sendo assim, variavel1 = # variavel2 = * variavel3 = # variavel4 = *[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 17, 2012 Denunciar Share Postado Novembro 17, 2012 Após cada caractere há um espaço, é isso? Se sim, você pode usar:scanf("%c ", &variavel); Do contrário, acho que não é possível só com um scanf. A forma mais fácil em que consigo pensar seria fazer a leitura sequencial dos caracteres e ignorar os espaços em branco. Algo como: char str[200]; char *p = str; char ch; while (ch = getchar(), ch != '\n' && ch != EOF) { if (ch != ' ') { *p++ = ch; } } *p = 0; puts(str); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DiegoAugusto Postado Novembro 17, 2012 Autor Denunciar Share Postado Novembro 17, 2012 É a intenção era ler uma sequencia de caracteres ignorando o ' '( espaço em branco). Para facilitar leituras de problemas tipo SPOJ.De qualquer forma, muito obrigado pela sua atenção!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Novembro 17, 2012 Denunciar Share Postado Novembro 17, 2012 Dê uma olhada na biblioteca limits Lá provavelmente tem o que você procura.Att.,Pedro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DiegoAugusto Postado Novembro 17, 2012 Autor Denunciar Share Postado Novembro 17, 2012 Eu consegui da seguinte forma:Tendo como entrada:* * + Usei: char c1, c2, c3 scanf(" %c"); scanf(" %c"); scanf(" %c"); Então atribui corretamente: c1 = * c2 = * c3 = +Facilita pra tipos de problemas que recebem uma linha com vários caracteres, não atribuindo o ' '(espaço em branco) a variável, pois não interessa.Muito obrigado pela sua atenção Pedro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Novembro 17, 2012 Denunciar Share Postado Novembro 17, 2012 Sem problema, :D. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 18, 2012 Denunciar Share Postado Novembro 18, 2012 Você está se referindo a algum problema específico do SPOJ? Normalmente eu acho mais fácil simplesmente ler a linha inteira e depois ir processando aos poucos. Quando necessário (raramente), uso a dica de colocar o espaço no scanf pra ignorar o caractere.Obs.:Marquei o tópico como Resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DiegoAugusto Postado Novembro 18, 2012 Autor Denunciar Share Postado Novembro 18, 2012 É porque trabalhar com String em C é meio complicado. O problema que eu resolvi recebia números e caracteres em uma mesma linha, e o scanf() estava associando a umas das variáveis do problema o ' '(espaço em branco), o que não era nada interessante. De qualquer forma obrigado pela ajuda, consegui resolver o problema da forma descrita acima.Obrigado a todos.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DiegoAugusto
Galera, tem como a função scanf() ler uma sequência de char no terminal excluindo o " "(espaço em branco).
Exemplo:
Lendo no terminal:
Queria saber uma forma de ler esses valores usando: Mas sem atribuir as variaveis o valor " "(espaço em branco). Sendo assim,[]'s
Link para o comentário
Compartilhar em outros sites
7 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.