C++ : Erreur

Résolu
Bonjour,

Langage : C++

Code :
char line[100];
if (strcmp(line[j],"0")!=0)
{
printf(ft,"%s",line[j]);
}

Erreur : c++ invalid conversion from 'char' to 'const char*'

Je compte sur votre aide.

Epslione
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. Je récapitule :

    Langage :
    C++

    Code :
    int j;
    char line[100];
    for (j=0;j<100;j++)
    {
    if (strcmp(line[j],"0")!=0)
    {
    printf("%s",line[j]);
    }
    }

    Erreur :
    c++ invalid conversion from 'char' to 'const char*'

    Soluce :
    int j;
    char line[100];
    for (j=0;j<100;j++)
    {
    if (line[j]=='0')
    {
    printf("%c",line[j]);
    }
    }

    Epsilone
    0
    1. Oui, ça marche CharSnipeur!

      Epsilone
      0
      1. Contributeur
        pfff....
        revoi tes cours sur pointeurs tableau et types.
        line est un tableau de char, c'est en gros équivalent à un char*. Donc line[j] est de type char. Le prototype de strcmp est int strcmp(const char*, const char *) et toi tu lui donne un char comme premier argument.
        Si tu cherche à comparer des caractère,fait le directement :
        if (line[j]!='0')
        pareil pour le printf -> voir message <2>
        0
        1. L'erreur est dans cette ligne : if (strcmp(line[j],"0")!=0)

          Merci.

          Epsilone.
          0
          1. salut,

            je crois bien que grizzlykiller a raison.
            change %s en %c
            0
        2. Je redonne le code :

          Langage : C++

          Code :
          int j;
          char line[100];
          for (j=0;j<100;j++)
          {
          if (strcmp(line[j],"0")!=0)
          {
          printf("%s",line[j]);
          }
          }

          Erreur : c++ invalid conversion from 'char' to 'const char*'

          Merci!

          Epsilone
          0
          1. L'argument %s représente une chaine de caractères, or tu essaye d'afficher un seul caractère.
            Essaye avec %c à la place de %s
            1
            1. retire le "[j]" dans ton printf pour voir.
              0