Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Esercizio stringhe C/C++
Forum - C/C++ - Esercizio stringhe C/C++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Lukeinfo (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/06/2019

Segnala al moderatore
Postato alle 14:05
Mercoledì, 12/06/2019
Salve , chiedo aiuto in questo dannato esercizio sulle stringhe. Mi blocco nel ciclo. L'esercizio mi chiede in pratica di fornire in uscita il testo inserito in cui le parole che hanno iniziale maiuscola siano trascritte tutte in maiuscolo . Ex: marco mangia La Mela - diventa -marco mangia LA MELA

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5.  
  6.  int main(void)
  7.  {
  8.  
  9.  const int MAXDIM = 100 ;
  10.  char frase[MAXDIM +1] ;
  11.  char nuovafrase[MAXDIM +1] ;
  12.  int i ;
  13.  int j;
  14.  
  15.  printf ("Inserisci una frase di al massimo %d caratteri: ", MAXDIM) ;
  16.  gets(frase) ;
  17.  
  18.  i=0;
  19.  j=0;
  20.  while(frase[i]!='\0')
  21.  {
  22.     if ( (frase[i]>='A') && (frase[i]<='Z') )
  23.        {
  24.               nuovafrase[j] = toupper(frase[i]);
  25.           j++;
  26.        }  
  27.     i++;
  28.  }
  29.     nuovafrase[j] = '\0' ;
  30.     printf("La frase modificata e: ");
  31.     puts(nuovafrase);
  32.  
  33.  
  34.     exit(0);
  35.  }




Ultima modifica effettuata da Lukeinfo il 12/06/2019 alle 14:07
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:04
Mercoledì, 12/06/2019
Ci sei quasi ... la parte che modificherei ... (considera che il programma non deve terminare con exit ma con return)

Codice sorgente - presumibilmente Delphi

  1. i = j = 0;
  2.         while (frase[ i ])
  3.         {
  4.                 nuovafrase[j] = frase[ i ];
  5.  
  6.                 if ((frase[ i ] >= 'A') && (frase[ i ] <= 'Z'))
  7.                 {
  8.                         do
  9.                         {
  10.                                 i++; j++;
  11.                                 nuovafrase[j] = toupper(frase[ i ]);
  12.                         } while (frase[ i ] && frase[ i ] != ' ');
  13.                 }
  14.                 else
  15.                 {
  16.                         i++; j++;
  17.                 }
  18.         }
  19.  
  20.         nuovafrase[j] = 0;
  21.         printf("La frase modificata e: %s\n", nuovafrase);
  22.  
  23.         return(0);


Ultima modifica effettuata da nessuno il 12/06/2019 alle 17:06


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 18:57
Mercoledì, 12/06/2019
...e coi caratteri accentati come la mettiamo?


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:04
Mercoledì, 12/06/2019
Li ignoriamo ... usiamo la toupper...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Lukeinfo (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/06/2019

Segnala al moderatore
Postato alle 20:11
Mercoledì, 12/06/2019
Grazie mille per l'aiuto :k:!!!  il do-while serve per lo spazio tra una parola e l'altra?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:40
Mercoledì, 12/06/2019
Che vuoi dire?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Lukeinfo (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/06/2019

Segnala al moderatore
Postato alle 11:55
Giovedì, 13/06/2019
Il do-while in pratica  scorre tutta la parola finchè non finisce ?

PM Quote
Avatar
Lukeinfo (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/06/2019

Segnala al moderatore
Postato alle 12:06
Giovedì, 13/06/2019
Se voglio inserire  questo carattere ( _ ) invece dell maiuscolo come dovrei fare? char simbolo[] = "_" e usare una strcpy?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:44
Giovedì, 13/06/2019
Gioco dell'impiccato?

Dato che è un carattere lo puoi assegnare semplicemente dove ti serve

nuovafrase[j] = '_';


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo