Ma fct sur les tableaux en C ne marche pas
sophie34
-
Yuku Messages postés 215 Statut Membre -
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
avec dans le corps du main un code du genre:
merci pour votre aide :)
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
-
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;
}
-
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.... -
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 -
ah d'accord, c'est donc à bannir.....
le soucis, c'est que ne comprend rien au pointeurs
arf, je suis dans la mouise :'( -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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;
} -
-
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;
} -
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.