Ma fct sur les tableaux en C ne marche pas

sophie34 -  
Yuku Messages postés 215 Statut Membre -
Bonjour,
je souhaite créer une fonction de saisie en c qui prend comme paramètre un string (un tableau de char) et renvoit un autre tableau de string (un autre tableau de char) mais à la compilation, j'ai toujours la même erreur:
expected unqualified-id before '[' token
expected ';'or ',' before '[' token


char[]    lireString(char mes[]){
	cin>>mes;
	return mes;
}


avec dans le corps du main un code du genre:
int main(){
int taille =5;
char tab[taille];
tab=lireString("tapez un mot au hasard svp:\n");
cout<<tab;
}


merci pour votre aide :)
Configuration: Windows XP Internet Explorer 7.0

8 réponses

  1. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    Voici ma fonction pour la lecture d un caractere

    #include<stdio.h>
    #include<conio.h>
    char lireChar(char c){
    scanf("%c",&c);
    return c;
    }
    int main(){
    char c_;
    c_=lireChar('n');
    printf("%c",c_);
    getch();
    return 0;
    }
    0
  2. sophie34
     
    merci pour ta réponse topcoder :)

    ce n'est pas les caractères qui me posent problème mais les chaînes de caractères....
    0
  3. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    je ponse que l utilisation des pointeurs va résoudre le probléme
    car la définition de la fonction sous la forme char []lireString(char mes[]) est impossible pratiquement en dépit qu ellle logique théoriquement
    0
  4. sophie34
     
    ah d'accord, c'est donc à bannir.....
    le soucis, c'est que ne comprend rien au pointeurs
    arf, je suis dans la mouise :'(
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    Voici ma proposition en utilisant les pointeurs mais je trouve encors un beug

    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    char *lireString(char mes[20]){
    printf("%s",mes);
    scanf("%s",mes);
    return mes;
    }
    int main(){
    char *tab=(char*)maloc(sizeof(char));
    tab=lireString("Saisir une chaine :\n");
    printf("%s",tab);
    return 0;
    }
    0
    1. sophie34
       
      merci pour ton aide :)

      je lirais le code demain à la première heure

      bonne nuit à toi :)
      0
  7. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    bonne chance
    0
  8. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    En fin j ai la trouvé :

    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    #include<conio.h>
    char *lireString(char mes[20]){
    printf("%s",mes);
    mes=NULL;
    mes=(char*)malloc(20*sizeof(char));
    scanf("%s",mes);
    return mes;
    }
    int main(){
    char *tab=(char*)malloc(20*sizeof(char));
    tab=NULL;
    tab=lireString("Saisir une chaine :\n");
    printf("%s",tab);
    getch();
    return 0;
    }
    0
  9. Yuku Messages postés 215 Statut Membre 4
     
    Juste un truc au passage : topcoder t'a corrigé sans te le dire, mais sache qu'en C tu n'as pas les fonctions CIN et COUT, ni les opérateurs de flux : << et >>, qui sont présents en C++.

    En C, c'est printf et scanf.

    Sinon c'est effectivement un problème de pointeurs.
    0