Prima di proseguire...
Potrebbe interessarti la nostra collezione di esercizi C risolti?
Vediamo oggi come fare a riconoscere se in una stringa è presente solo del testo, o meglio non sono presenti i numeri.
Il codice è abbastanza semplice:
<?php
function only_text($str){
//lunghezza stringa
$len = strlen($str);
//scorro la stringa e verifico carattere per carattere
for($i=0;$i<$len;$i++)
if($str[$i]>="0"&&$str[$i]<="9")
return $i;
return true;
}
$str = "ciaoy44d5dd";
$val = only_text($str);
if($val===true)
print "È solo testo";
else
print "sono presenti anche numeri, in particolare iniziano alla posizione : ".$val;
?>
La funzione only_text non fa altro che restituirmi true se è solo testo altrimenti mi restituisce la prima posizione in cui incontra un numero.
in particolare la funzione only_text controlla per ogni carattere se è un numero, con $str[$i]>=”0″&&$str[$i]<="9", si sarebbe potuto anche usare la funzione is_numeric ma così almeno si capisce la logica che sta dietro e cioè la logica dell'ordine nel codice ASCII. Se è un numero ritorna la posizione del carattere corrente altrimenti a fine ciclo ritorna true. N.B. questo metodo considera come testo anche i caratteri di spaziatura e caratteri come % @ , ; ecc per considerare solo le lettere basta cambiare la condizione in !(($str[$i]>=”A”&&$str[$i]<="Z") || ($str[$i]>=”a”&&$str[$i]<="z"))
stringa di solo testo by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
