Alle prime armi, problema codice

di il
7 risposte

Alle prime armi, problema codice

Ciao ragazzi, sono nuovo del forum e del c. Ho un problema con questo codice, data una stringa deve visualizzare le maiuscole con un'altra stringa. La dimensione della matrice risultante deve essere tale da contenere tutti i caratteri maiusc (così dice il testo).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

void solo_maiusc (char[]);

main ()
{
 	 
 	 
 	 char frase[50];
 	 printf ("inserisci la frase\n");
 	 scanf ("%s", frase);
 	 solo_maiusc (frase);
 	 
	  system ("PAUSE");
	  return 0; } 

void solo_maiusc (char frase[])
{
 	 int n,dim=0,i;
 	 
 	 n=strlen(frase);
 	 
 	 char nuova_frase[dim];
 	 
 	 for (i=0; i<= n; i++)
 	 {
 	 if (isupper(frase[i])==!0)
 	 {nuova_frase[dim]= frase[i];
 	 dim++;}}
 	 
 	 printf("_________________________\n");
 	 printf("I caratteri maiuscoli nella frase inserita sono:%s\n", nuova_frase);}
grazie

7 Risposte

  • Re: Alle prime armi, problema codice

    Quando si propone un problema ad un forum si dice qual è il problema.
  • Re: Alle prime armi, problema codice

    La stampa finale produce solo la prima lettera maiuscola, poi i rimanenti sono simboli che non c'entrano nulla.
  • Re: Alle prime armi, problema codice

    La stampa finale produce solo la prima lettera maiuscola, poi i rimanenti sono simboli che non c'entrano nulla.
  • Re: Alle prime armi, problema codice

    Ci sono parecchi errori, per cominciare che senso ha questa

    char nuova_frase[dim];

    dato che dim è una variabile che vale zero?
  • Re: Alle prime armi, problema codice

    L'ho messo perchè La dimensione della matrice risultante deve essere tale da contenere tutti i caratteri maiusc (così dice il testo). Comunque anche se gli metto una qualunque dimensione mi dà lo stesso errore.
  • Re: Alle prime armi, problema codice

    "La dimensione deve essere tale" e ci metti zero !?

    E poi ti ho detto "ci sono parecchi errori" quindi rimediare al primo non significa fare funzionare il programma.

    Adesso come hai modificato il programma ?
  • Re: Alle prime armi, problema codice

    Ho cambiato il primo scanf(che legge solo fino al primo spazio) con gets, ora tutto ok. Il fatto della dim=0 non capisco perché dici non vada bene.. A me manca teoricamente in effetti il carattere di fine stringa \0, però il programmino va. Grazie dell'aiuto comunque
Devi accedere o registrarti per scrivere nel forum
7 risposte