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

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. Contributeur
    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
    1. 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