Char **argv

Résolu
iam_myst Messages postés 51 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 28 décembre 2006 - 18 mai 2006 à 16:40
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 - 21 mai 2006 à 02:37
bonjour


je pense que c'est vraiment un problème de débutant mais la je suis perplexe :(


si on a un programme pricipal de ce type :


    int main(int argc, char **argv)

    {

          if ( argv[1] = = "pp" ) cout<<"pp";

          else cout<<"autre";

    }


l'appel de ce programme par " prog pp " et "prog pa" donnera le meme resultat ??


  dans ce cas, faut il faire ceci :

    int main(int argc, char **argv)


    {


          if ( ( argv[1][0] == 'p' ) && ( argv[1][1] == 'p' ) ) cout<<"pp";


          else cout<<"autre";


    }


s'il faut faire la deuxieme solutions ce n'est vraiment pas pratique :(


merci

4 réponses

Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
18 mai 2006 à 16:47
Petite erreur, c'est :

if ( strcmp( argv[1], "pp" ) == 0 )
{
    ...
}
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
18 mai 2006 à 16:46
if ( argv[1] == "pp" ) cout<<"pp";

Tu compares des pointeurs, faut utiliser strcmp.

if ( strmp( argv[1], "pp" )
{
    ...
}
0
iam_myst Messages postés 51 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 28 décembre 2006
18 mai 2006 à 16:51
meci de ta réponse, cela marche désormais
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
21 mai 2006 à 02:37
Salut,

strcmpi() est également très utile dans ce cas, il fait la même chose sauf qu'il ne tient pas compte de la casse.

++

eRoZion
0
Rejoignez-nous