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

Fermé
Paddington Brown - 12 janv. 2009 à 13:48
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 13 janv. 2009 à 09:46
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

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 janv. 2009 à 13:51
4
Paddington Brown
12 janv. 2009 à 13:54
Merci beaucoup, Char Snipeur ! :-)


Je vais consulter tout ça.


Bon après-midi à toi. ;-)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 09:46
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
Paddington Brown
12 janv. 2009 à 17:32
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