Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Lettere da minuscole a maiuscole (Linguaggio C)

    Se un esercizio mi chiede di trasformare le lettere minuscole in maiuscole dopo il punto in un testo come devo fare? Cioè io ho ad esempio due frasi in un file:

    Ciao. dove vai?
    "fate luogo voi", rispose Lodovico. "la diritta e` mia".

    Nella prima fase cè il punto e lo spazio mentre nella seconda dopo Lodovico ce è il punto ma ci sono anche lo spazio e le virgolette... come dico al programma che mi deve trasformare la l in L se dopo il punto ce uno spazio e delle virgolette e la d in D se ce lo spazio?

    Ho fatto in questo modo ma non so se è corretto dato che mi da un errore:

    codice:
    int main(){
       char testo[100]; 
       int i = 0, k;
       FILE *sourceFile;
       FILE *destinationFile;
       sourceFile = fopen("testo.txt", "r");
       destinationFile = fopen("testout.txt", "w");
       while(!feof(sourceFile)){
       fscanf(sourceFile, "%s", testo);
       fprintf(destinationFile,"%s ", testo);
       for(i = 0; i<strlen(testo); i++){
                                        if((testo[i] == ".") && (testo[i + 1] == " ")){
                                                          testo [i + 2] = (testo[i + 2] + 32);
                                                         }
                                        if((testo[i] == ".") && (testo[i + 1] == " ") && (testo[i + 2] == "249")) {
                                                                                  testo[i + 3] = (testo[i + 3] + 32);
                                                                                 }
              }     
       fclose(sourceFile);
       fclose(destinationFile);
       printf("%s",testo);
       system("PAUSE");
      
            
    }
    Mi da questo errore:

    "Comparison between pointer and integer" ai due if... Mi sono accorto che l'errore è nelle virgolette ma non so risolverlo... all ultimo if ho messo 249 che corrisponde alle " in codice ASCII dato che non sapevo come metterle...

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    " " indica char[]
    ' ' indica char

    Non puoi fare un confronto con un char e un char[]... (e comunque le stringhe non si confrontano con == ma con strcmp)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    scusami ma non ho capito come devo fare... Io devo vedere se in quella posizione cè il punto o lo spazio che faccio creo altri array solo per il punto? e poi con strcmp posso confrontare due stringhe... io ho bisogno solo di quel carattere

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Cambia i vari confronti tipo testo[i] == "." con testo[i] == '.'

    Su cosa stai studiando C? La differenza tra "A" e 'A' è veramente roba "base"
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da Alex'87
    Su cosa stai studiando C? La differenza tra "A" e 'A' è veramente roba "base"
    In effetti ... così non imparerai a programmare in C ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Mettendo le apici mi dà altri errori ci avevo già provato Sto studiando su Corso Completo di Programmaizone di Deitel e Deitel della Apogeo

    Comunque ehm ci ho riprovato ed avete ragione voi... Apici...

    Probabilmente mi dava qualche altro errore che non riguardavano le apici... Eh vabbe scusate la mia ignoranza... Un giorno imparerò anche io Comunque per portare da minuscola a maiuscola senza usare le funzioni toupper e tolower va bene aggiungere 32 in ASCII al carattere?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sicuramente imparerai ma non affronti lo studio in maniera corretta. Perché non cerchi queste informazioni sul libro al posto di andare a "caso" e poi chiedere nel forum quando hai il problema?

    E così che dovresti imparare ... cerca nel libro la parte che riguarda le stringhe e i caratteri ...

    Per la domanda che hai fatto, ti ricordo solamente i codici ASCII di due lettere

    A 65
    a 97

    Fai tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.