[C++] Déterminer si une chaine est vide

Paddington Brown -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche à déterminer dans un programme C++ si une chaine est vide ou non.

Voici mon programme C++ :

#include <iostream>
#include <string>

int main()
{
    std::string chaine3;
    s3 = "Ceci est la troisieme chaine";
    std::cout << "Chaine numero 3 (affectation) : " << chaine3 << std::endl << std::endl;
    
    std::string chaine1("Ceci est la premiere chaine");
    std::cout << "Chaine numero 1 (constructeur avec un parametre) : " << chaine1 << std::endl << std::endl;
    
    std::string chaine2(s1);
    std::cout << "Chaine numero 2 (constructeur par copie) : " << chaine2 << std::endl << std::endl;
    
    std::string chaine4("programmation");
    std::cout << "La taille de la chaine 4 (programmation) : " << chaine4.size() << std::endl << std::endl;
    
    system("Pause");
    return 0;
}


Je souhaiterais ajouter une fonction qui détermine si une chaine est vide, et qui retourne un booléen (true=vide et false=non vide).

Quelle est la syntaxe de cette fonction, SVP ?

Merci d'avance, et je vous souhaite un très bon après-midi ! :-)

Cordialement.
L'Ours Paddington Brown.

3 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    4
    1. Paddington Brown
       
      Merci beaucoup, Char Snipeur ! :-)


      Je vais consulter tout ça.


      Bon après-midi à toi. ;-)
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Je ne comprends pas le problème.
    essai
    if(chaine4.empty()) std::cout<<"vide !";else cout<<"plein";
    Juste histoire de voir si ça compile.
    ou essai d'inverser l'inclusion des string et iostream.
    vérifie que la fonction est bien présente dans les inclusions et son prototype.
    2
  3. Paddington Brown
     
    Re. J'ai sûrement fait une erreur dans mon code.
    Pourrais-tu m'indiquer ce qui ne va pas ? Merci d'avance ! :-)

    Le compilateur de Dev-C++ m'indique l'erreur suivante :
     In function `int main()': 
          non-member function `bool empty()' cannot have `const' method qualifier 


    Voici mon code :
    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string chaine3;
        s3 = "Ceci est la troisieme chaine";
        std::cout << "Chaine numero 3 (affectation) : " << chaine3 << std::endl << std::endl;
        
        std::string chaine1("Ceci est la premiere chaine");
        std::cout << "Chaine numero 1 (constructeur avec un parametre) : " << chaine1 << std::endl << std::endl;
        
        std::string chaine2(s1);
        std::cout << "Chaine numero 2 (constructeur par copie) : " << chaine2 << std::endl << std::endl;
        
        std::string chaine4("programmation");
        std::cout << "La taille de la chaine 4 (programmation) : " << chaine4.size() << std::endl << std::endl;
        
        std::cout << chaine4.empty() << std::endl;
    
        system("Pause");
        return 0;
    }
    1