Duvida em programa em C

Pedui

Membro
Estava a fazer um trabalho de programação em c e surgiu-me uma dúvida.
Eu quero que o utilisador insira dois valores, através de um scanf.
Neste scanf eu quero que os valores sejam guardados de uma forma formatada, deste género:
Código:
 y$u
Eu sei que o scanf tem de ser algo deste género:
Código:
 scanf(" %c$%c", ...);
A minha questao é que eu quero que se por exemplo não for introduzido isso, eu quero que ele não faça as instruções abaixo.
Por exemplo, caso seja introduzido isto:
Código:
fdsd$$$asdasdybu
Eu quero que não seja feita nenhuma instrução abaixo.
Eu sei que tenho de usar if e else. A minha questão é mesmo só na parte da escrita do utilizador, eu gostaria de "limitá-la".
Se alguém pudesse ajudar agradecia. :)
 
Podes repetir o scanf enquanto o input não tiver o formato que queres. Algo como:

Código:
 char str[3];

 do {
  scanf(%c%c%c ....);
 } while(!verificastring(str))

Onde verificastring é uma função feita por ti onde fazes o conjunto de testes para validar a string. Se a única necessidade fosse ter (char)$(char), a função podia ser:

Código:
int verificastring(char* str) {

if(str[1]=='$')
 return 1;
else return 0;

}

Já agora, podias condensar a função anterior para: return str[1]=='$'; -> e neste caso nem fazia sentido ser uma função auxiliar, podias meter a comparação diretamente na verificação do while, isto só se usa se o conjunto de testes for algo mais elaborado.
Espero ter ajudado.
 
Back
Topo