[Langage C] passer une chaine de caractères e

Fermé
quentennis Messages postés 12 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 24 mai 2010 - 29 avril 2008 à 11:21
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 29 avril 2008 à 15:44
Bonjour,

J'ai un problème avec une chaine de caractères. Je souhaite lui faire subir un traitement dans un efonction. Le problème, c'est que je n'"arrive pas à la faire passer dans les paramètres de la fonction en question.

Cette chaine est déclarée dans le main, et elle récupère des caractères qui ont été lus dans un fichier texte. Puis je souhaite la faire passer dans une fonction pour effectuer des manipulations sur les caractères qu'elle contient. Et là, je bloque !

Je vous mets mon code, merci pour votre aide !

MAIN
FILE *Fichier;
Fichier = fopen("test.txt","r");
char chaine[3];
float voltagefinal;
float Resultat;

fscanf(Fichier,"%s",chaine);

Resultat = Conversion(chaine, voltagefinal);


FONCTION
float Conversion (char chaine, float voltagefinal)
{
char centaine;
char dizaine;
char unite;

unite = chaine[2];
dizaine = chaine[1];
centaine = chaine[0];

return voltagefinal;
}



Je n'ai pas mis tout le code, sinon c'est trop long. voltagefinal contient une valeur lorsqu'il est renvoyé dans le main.

Et la, j'essaye de compiler mais rien à faire. Comment résoudre ça ??
A voir également:

2 réponses

martial50 Messages postés 1 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 29 avril 2008 1
29 avril 2008 à 11:27
Dans la fonction conversion, la chaines est vue comme un pointeur.

donc

float Conversion (char *chaine, float voltagefinal)


Alors chaine est utilisable comme un tableau de char : chaine[i] ou comme un pointeur sur la chaine passée en argument de la fonction.
1
quentennis Messages postés 12 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 24 mai 2010
29 avril 2008 à 11:42
Salut

J'ai changé le code, mais je n'obtiens toujours pas ce que je veux, car quand je fais :

printf("%s\n"chaine);

dans le sous programme, il me dit null.

Voilà ce que j'ai changé dans le code :
MAIN
Resultat = Conversion(chaine[3], voltagefinal);

FONCTION
float Conversion (char *chaine, float voltagefinal)
{
printf("%s",chaine);
}


0