Fonction chaine de caractere C

Résolu
BONJOUR,
Je ne comprend pas bien pourquoi ma fonction avec une chaine ne fonctionne pas. Je vous montre ce que j'ai écrit dernièrement :

// la déclaration de l afonction :

char recherchenom(char);

// la fonction :

char recherchenom(char nom[])
{
int i,j;
int nombre=0;
for (i = j = 0; nom[i] != '\0'; ++i)
{
if (nom[i] =='<' || nom[i] =='>')
nombre++;
if ((nom[i] >= 65 && nom[i] <= 90 || nom[i]==' ')&&(nombre%2==1))
nom[j++] = nom[i];
}
nom[j] = '\0';
return nom[];
}

// eet puis plus loin dans le programme :

nom[]=recherchenom[](nom[]);

je ne sais pas vraiment si vous avez bien compris mais pour résumer, je pars d'une chaine que j'envoie dans la fonction (qui fait quelques transformations a la chaine) et je renvoie ça dans le programme. Le compilateur me et plusieurs erreurs.
Si quelqu'un pouvais m'aider s'il vous plait.
Merci

11 réponses

  1. c'est quoi les erreur que te donne le compilateur ?
    mais je dirais deja qu'il manque la taille du tableau et ton appel n'est pas correct non plus
    0
    1. le comiplateur m emet une erreur dans la ligne ou il y a mon return puis 3 erreurs sur la ligne de mon appel de fonction
      0
      1. en effet le return c'est comme ça
        return nom;

        et pour ton appel essaie ça
        nom = recherchenom(nom);

        et je pense que si nom est une chaine de caractere ton en-tete devrait plutot ressemblé a ça
        char *recherchenom(char nom[])
        0
        1. ça ne marche pas quand meme car j'ai initialisé la taille de nom par charnom[100] et du coup il me met "incompatibles types in asignment to 'char' to char[100]" et "invalid conversion from 'char*' to 'char'".
          0
          1. dans l'ordre des citations : la 1ère a la ligne de mon return et l'autre sur mon appel
            0
            1. c'est bizarre tu as bien changé ton en-tete ?
              char *recherchenom(char nom[])
              et sinon pour copier la nouvelle chaine a la place de l'ancienne tu peux utiliser la fonction strcpy() comme ça
              strcpy(recherchenom(nom), nom);
              0
              1. ah il n'y a plus qu'une erreur:
                sur l'apel de la fonction:
                "incompatibles types in asignment to 'char' to char[100]"
                0
                1. poour l'appel c'est simplement ça vu que tu change nom a l'interieur de ta fonction
                  recherchenom(nom);
                  0
                  1. Modérateur
                    Salut,

                    dans ton premier message je vois char[100] caractere;

                    ce n'est pas correct, tu devras écrire
                    char caractere[100];
                    0
                    1. oui mais c'est parce que j'avais un peu bidouillé mon prg mais je l'ai vu illico presto a la compilation suivante.
                      merci à toi.
                      ++
                      0
                  2. ah oui en effet cela fonctionne. Je n'avait jamais vu un appel de la sorte.
                    En tout cas merci pour tout mype.
                    je met ça sur résolu.
                    ++
                    0