Conta cifre in una stringa

Un esercizio facile per introdurre l’uso delle stringhe in linguaggio C. Si parte dal presupposto che la stringa è inserita nel programma principale con la funzione fget o gets. Una apposita funzione, converte con un cast la singola lettera in numero intero corrispondente alla mappa ASCII in modo da poter creare un filtro con una condizione if, dove sappiamo che nella mappa ASCII le lettere corrispondenti ai numeri sono mappate appunto da da 48 a 57, estremi esclusi. Trovate qui su wikipedia la mappa per raffronto. Appurato che il carattere corrisponda ad un intero nell’intervallo, non resta che conteggiare l’eventuale presenza.

#include <stdio.h>
#include <string.h>


int quanteCifre(char *s)
{
  int i;
  int lunghezza = strlen(s) -1;
  int ascii;
  int contanumeri=0;
  
  for (i=0; i < lunghezza; i++ )
  {
    // converto la lettera in ascii
    // i numeri sottoforma di stringa 
    // sono comunque da 47 a 58 della tabella ascii
    ascii = (int)s[i];
    //printf("%d ", ascii);
    if (ascii > 47 && ascii < 58)
      contanumeri++;
  }  

  return contanumeri;
}


int main() 
{
  char stringa[100]; 
  printf("Inserisci una frase ");
  fgets(stringa, 100, stdin);
  //puts(stringa); //usare per debug e stampa di confronto
  printf("Nella parola ci sono %d cifre numeriche", quanteCifre(stringa));

  return 0;
}

Listati

Provalo su Replit -> qui

Ultima modifica 16 Giugno 2022