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

    [c++]funzione elimina carattere

    ciao. ho creato questa funzione per eliminare da una stringa i caratteri maggiori di L nell'ordine alfabetico, ma ho qualke problema

    codice:
    char EliminaLettera(char stringaz[]) {
        char lettera = 'L';
        char stringa[60];
        for(int i=0; i<=60; i++) {
                  if(stringa[i] > lettera) {
                      stringa[i] = ' ';
                  } 
              }    
              cout << stringa << endl;
    }
    questa è la funzione...
    nel main leggo l'array stringa con cin e poi applico la funzione alla stringa. La funzione controlla se il carattere è maggiore di L. se è così lo modifica assegnandogli uno spazio vuoto. ma nn mi funge, nn da errori ma l'esecuzione non è normale :master:
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  2. #2

    Re: [c++]funzione elimina carattere

    Originariamente inviato da Manuelandro

    codice:
    char EliminaLettera(char stringaz[]) {
        char lettera = 'L'; 
        char stringa[60]; // Questa variabile non serve
        for(int i=0; i<=60; i++) {
                  if(stringaz[i] > lettera) {
                      stringaz[i] = ' ';
                  } 
              }    
              cout << stringaz << endl;
    }
    Hai ripetuto gli stessi errori dell'altro tuo post ...
    La funzione riceve 'stringaz[]' e non la utilizza !!!
    In questo caso 'stringa[60]' non serve, utilizza direttamente stringaz.
    Inoltre assegni a 'lettera' il valore 'L' quindi un carattere
    maiuscolo, se la stringa è formata di caratteri minuscoli
    la funzione non funzionerà,'L' è diversa da 'l'.
    Inoltre, visto che la funzione non ritorna alcun valore
    dichiarala di tipo 'void' invece di 'char'.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3

    Re: Re: [c++]funzione elimina carattere

    Originariamente inviato da Samuele_70
    La funzione riceve 'stringaz[]' e non la utilizza !!!
    In questo caso 'stringa[60]' non serve, utilizza direttamente stringaz.
    si ma se uso il nome del parametro della funzione, la stessa mi da errore quindi come dovrei fare?

    Originariamente inviato da Samuele_70
    Inoltre assegni a 'lettera' il valore 'L' quindi un carattere
    maiuscolo, se la stringa è formata di caratteri minuscoli
    la funzione non funzionerà,'L' è diversa da 'l'.
    la traccia mi obblica ad usare per forza il carattee L maiuscolo!
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  4. #4

    Re: Re: Re: [c++]funzione elimina carattere

    Originariamente inviato da Manuelandro
    si ma se uso il nome del parametro della funzione, la stessa mi da errore quindi come dovrei fare?
    Dipende, quale errore ti da il compilatore ?
    la traccia mi obblica ad usare per forza il carattee L maiuscolo!
    Bè in questo caso (fai attenzione) se passi una stringa 'tutta in minuscolo'
    il risultato sarà ovviamente una stringa composta tutta da spazi.

    codice:
     /** 
       * [c++]funzione elimina carattere
       *
       **/
    
    #include <iostream>
    
    using namespace std;
    
    void EliminaLettera(char *str)
    {
    	char lettera = 'L';
    	for(unsigned int i=0; i<=strlen(str); i++)
    		if( str[i] > lettera )
    			str[i] = ' ';
    	cout<<str<<endl<<endl;
    }
    
    int main()
    {
    	char str[61] = "FUNZIONE CHE ELIMINA I CARATTERI DA UNA STRINGA by SAMUELE";
    	cout<<" Stringa originale :"<<endl;
    	cout<<endl<<str<<endl<<endl;
    	cout<<" Sostituisco tutti i caratteri superiori a 'L' con uno spazio :"<<endl<<endl;
    	EliminaLettera( str );
    	system("PAUSE");
    	return 0;
    }
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    ah dimenticavo ke i puntatori non posso usarli, non fanno parte del programma fatto fin'ora!
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  6. #6
    Originariamente inviato da Manuelandro
    ah dimenticavo ke i puntatori non posso usarli, non fanno parte del programma fatto fin'ora!

    Questo non mi sembra un problema

    codice:
    void EliminaLettera(char str[])
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  7. #7
    posso chiederti un chiarimento? a cosa serve unsigned prima di int i?
    grazie...
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  8. #8
    specifichi che quel particolare intero sarà senza segno.
    Quindi puoi rappresentare solo interi positivi, ma il tuo range è più ampio perchè sfrutti interamente tutti i byte che rappresentano tale tipo di dato

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.