Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [C / C++]Stringhe....è difficile !!

    ciao,

    mi stò avvicinando al c / c++ (dipende dalle esigenze), e una prima carenza che mi è sembrato di notare è la gestione delle stringhe.
    Precedentemente io utilizzavo Java, che nonostante i suoi limiti fisiologici aveva un buon sistema di librerie di supporto per la gestione dele stringhe.
    Non esiste in C/C++ una libreria che semplifichi la vita ?? a volte è un po' scomodo vedere le stringhe come array di char !!

  2. #2

    Re: [C / C++]Stringhe....è difficile !!

    Originariamente inviato da CrashOverride
    Non esiste in C/C++ una libreria che semplifichi la vita ??
    C: glib ad esempio.
    C++: std::string.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  3. #3
    ok, ma ho detto che mi stò avvicinando al C, fammi qualche esempio, che sò....come la dichiaro una variabile di tipo "string" ??

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    #include <string>

    std::string stringa = "Ciao";

    Slack? Smack!

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    La gestione delle stringhe in C++ per me è ottima e completa, ma non possiamo spiegartela tutta qui!
    Vedi link: www.cppreference.com


  6. #6
    Originariamente inviato da CrashOverride
    ok, ma ho detto che mi stò avvicinando al C, fammi qualche esempio, che sò....come la dichiaro una variabile di tipo "string" ??
    codice:
    typedef char * String;
    
    int main (void) {
        String str = "ciao";
        printf ("%s", str);
        return (0);
    }
    Naturalmente devi utilizzare la libreria "string.h" per fare operazioni su di esse.
    Ciao!

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Credo che intendesse stringhe C++, membri della classe string!

  8. #8
    grazie a tutti.
    faccio qualche prova.
    ciao.

  9. #9
    ok, ci siamo quasi....

    ho seguito i consigli di Michele e ho buttato giù qualcosa del genere :

    #include <string.h>
    #include <stdio.h>
    #include <conio.h>

    typedef char * String;

    int main(){
    String str="primaparte, seconda parte";
    String Sep = ",";
    String Token = NULL;
    Token = strtok(str,Sep);
    printf("%s",Token);
    Token = strtok(NULL,Sep);
    printf("%s",Token);
    return 1;
    }


    io mi spettavo che mi scrivesse "primaparte" "seconda parte", invece la seconda parte si tronca allo spazio , infatti mi esce : "primaparte" "seconda".

    perchè?? come posso rimediare ??

  10. #10
    La libreria standard del C lascia un po' a desiderare, quella del C++ è abbastanza completa, anche se non come quella di Java.

    Purtroppo la sintassi è complicata, se non hai letto un buon libro sul C++ difficilmente potrai capire del tutto questo codice.

    Esempio C++

    codice:
    #include <iostream>
    #include <vector>
    #include <string>
    
    using namespace std; 
    typedef vector<string> svec; 
    
    svec split(string& subject, string& separator) 
    {
    	svec temp; 	
            string::size_type start=0, end = 0; 
              
           	while (start != string.npos)
    	{					
    		end = subject.find(separator, start);
    		temp.push_back(subject.substr(start, end != string.npos ? end - start: string.npos));
    		start = end != string.npos ? end + separator.length() : string.npos ;
    	}
    	return temp;
    }
    
    
    int main()
    {
    	string str("primaparte, -seconda parte, -terza parte, -quarta ed ultima parte"); 
    	string sep = ", -"; 
    	svec tokens = split(str, sep);
    	cout << tokens[0] << endl; 
    	cout << tokens[1] << endl; 
    	cout << tokens[2] << endl;
    	cout << tokens[3] << endl;
    	return 0; 
    }

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.