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

    [C] spunto per problema stupido...

    Salve a tutti, avrei bisogno di un aiuto per un piccolo problema di C, premetto che sono alle primissime armi, ho un file di testo con una stringa, ho lan ecessità di traformare tutti i caratteri della stringa in minuscolo e di traformare in maiuscolo i caratteri che precedono uno di questi simboli !?; avete idea di come possa fare????

    Grazie anticipatamente...
    Il miglior team di professionisti per le tue realizzazioni. http://www.brokenice.it
    Le tue vacanze in umbria
    agriturismo - agriturismi

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Codice PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>


    int main(){
        
    FILE pFile;
        
    long lSize;
        
    char buffer;
        
    pFile fopen("mio_file.txt""r");
        if (
    pFile == NULL)
            exit (
    1);
        
    // lunghezza del file
        
    fseek (pFile SEEK_END);
        
    lSize ftell (pFile);
        
    rewind (pFile);
        
    // alloco il buffer
        
    buffer = (char*)malloc(lSize);
        if (
    buffer == NULL)
            exit (
    2);
        
    // carico il file nel buffer.
        
    fread (buffer1lSizepFile);
        
    fclose (pFile);
        
    int i;
        
    //converto i caratteri
        
    for(0lSizei++)
             
    //Se il carattere è seguito da '?' o '!'
             //converto in maiuscolo
            
    if((lSize 1) && 
              ((
    buffer[1] == '?') || (buffer[1] == '!')))
                
    buffer[i] = toupper(buffer[i]);
            
    //altrimenti converto in minuscolo
            
    else
                
    buffer[i] = tolower(buffer[i]);
        
    //riscrivo il file
        
    pFile fopen("mio_file.txt""w");
        if (
    pFile == NULL)
            exit (
    1);
        
    fwrite(buffer1lSizepFile);
        
    fclose(pFile);
        
    free(buffer);
        return 
    0;


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Che dire... Tante grazie!!!
    Il miglior team di professionisti per le tue realizzazioni. http://www.brokenice.it
    Le tue vacanze in umbria
    agriturismo - agriturismi

  4. #4
    Ul ultimo dubbio, come posso fare il replace delle lettere accentate, ovvero, devo fare questo, replace di à con a' è con e' ecc... però se faccio buffer[i] == 'à' mi da un warning...

    Grazie anticipatamente per la risposta...
    Il miglior team di professionisti per le tue realizzazioni. http://www.brokenice.it
    Le tue vacanze in umbria
    agriturismo - agriturismi

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    che warning ti dà? a me non dà nessun warning...

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Scusami, sono stato poco preciso, allora, il mio programma devi girare sia sotto linux che sotto windows, dunque, sotto windows in effetti come dici tu, va tutto ok, sotto linux invece mi da un warning quando inserisco un carattere accentato, mi dice: warning: multi-character constant warning: comparsion is always false due to limited range of data type, l'istruzione che mi sottolinea è la seguente buffer[i] == 'è'.

    Qualche idea???
    Il miglior team di professionisti per le tue realizzazioni. http://www.brokenice.it
    Le tue vacanze in umbria
    agriturismo - agriturismi

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.