Ciao ragazzi, dovrei realizzare due funzioni molto simili ma ho dei problemi.
1) Devo leggere la stringa "Nome", questa stringa può contenere solo lettere (maiuscole e minuscole) e spazi.
2) Devo leggere la stringa "Key", questa stringa può contenere solo lettere (maiuscole e minuscole) e numeri (nessuno spazio).
Se le linee guida non vengono seguite, l'utente deve essere in grado di poter rifare l'input.
Sfortunatamente, non posso usare librerie speciali (solo stdio e stdlib).
Questo è quello che ho fatto:
Stavo pensando di fare qualcosa di simile.
Per il primo problema sostituirei
con
.
Purtroppo non funziona, e non capisco dove sto sbagliando.
Inoltre non so come realizzare il for, nel caso di "Key" la lunghezza ammessa è di 16 caratteri (non più e non meno), mentre per il nome ho la lunghezza massima che è 64 (ma posso avere anche meno).
Mi potreste dare una mano?
1) Devo leggere la stringa "Nome", questa stringa può contenere solo lettere (maiuscole e minuscole) e spazi.
2) Devo leggere la stringa "Key", questa stringa può contenere solo lettere (maiuscole e minuscole) e numeri (nessuno spazio).
Se le linee guida non vengono seguite, l'utente deve essere in grado di poter rifare l'input.
Sfortunatamente, non posso usare librerie speciali (solo stdio e stdlib).
Questo è quello che ho fatto:
C:
void checkString(char *i){
int cont;
do {
scanf("%s", i);
if (checkStrLen(6, 6, i) != 0) { //controllo lunghezza stringa (min,max,stringa)
for(cont=0; cont<6;){
if((i[cont]>='0' && i[cont]<='9')||
(i[cont]>='A' && i[cont]<='Z')||
(i[cont]>='a' && i[cont]<='z')){
cont++;
}else{
printf("Not valid character");
printf("Try again"); break;
}
}
}else{
printf("\nToo large string");
printf("\nTry again"); break;
}
}while(1);
}
Per il primo problema sostituirei
Codice:
(i [cont]> = '0' && i [cont] <= '9')
Codice:
(i [cont] == ' ')
Purtroppo non funziona, e non capisco dove sto sbagliando.
Inoltre non so come realizzare il for, nel caso di "Key" la lunghezza ammessa è di 16 caratteri (non più e non meno), mentre per il nome ho la lunghezza massima che è 64 (ma posso avere anche meno).
Mi potreste dare una mano?