Convertir un tableau char[] en char
Résolu/Fermé
alcOol
Messages postés
9
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 juillet 2008
-
9 avril 2008 à 15:43
alcOol Messages postés 9 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 31 juillet 2008 - 10 avril 2008 à 09:16
alcOol Messages postés 9 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 31 juillet 2008 - 10 avril 2008 à 09:16
A voir également:
- Convertir un tableau char[] en char
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
1 réponse
damlegone32
Messages postés
74
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
31 mai 2011
29
9 avril 2008 à 20:14
9 avril 2008 à 20:14
Salut,
Ce que tu cherche à faire est impossible. En effet un char ne peut contenir qu'un seul caractère : c'est en fait un entier qui est égal code asciidu caractère. Un tableau de caractère (ou chaine de carctères) est un ensemble de char situés les uns a la suite des autres en mémoire.
Quand tu déclare un tableau de char, par exemple char tableau[10]; , la variable tableau contient l'adresse du premier caractère de la chaine. pour accéder à un caractère en particulier on écrit char[i], par exemple, pour accéder au ième caractère, ...;
Dans ton cas du doit donc déclarer asAlphabet comme une chaîne de caractères dans laquelle tu va stocker les lettres de l'alphabet :
char asAlphabet[30];
Tu remplie comme tu l'a fait les "cases" de cette chaîne
for(int index=0; index <26; index++)
{
asAlphabet[index]=index+65;
}
n'oublis pas de terminer par un \0 pour signaler la fin de la chaîne :
asAlphabet[26] = '\0';
et tu l'enregistre comme ceci
fprintf(canalFichier,"%s",asAlphabet);
De même pour tes autres alphabets.
Autre chose : tu ne dois pas convertir les nombres en int puisque c'est des caractères que tu veut enregistrer dans tonfichier!!!. Donc procède comme pour les lettres.
En espérant avoir pu t'aider
A+
Ce que tu cherche à faire est impossible. En effet un char ne peut contenir qu'un seul caractère : c'est en fait un entier qui est égal code asciidu caractère. Un tableau de caractère (ou chaine de carctères) est un ensemble de char situés les uns a la suite des autres en mémoire.
Quand tu déclare un tableau de char, par exemple char tableau[10]; , la variable tableau contient l'adresse du premier caractère de la chaine. pour accéder à un caractère en particulier on écrit char[i], par exemple, pour accéder au ième caractère, ...;
Dans ton cas du doit donc déclarer asAlphabet comme une chaîne de caractères dans laquelle tu va stocker les lettres de l'alphabet :
char asAlphabet[30];
Tu remplie comme tu l'a fait les "cases" de cette chaîne
for(int index=0; index <26; index++)
{
asAlphabet[index]=index+65;
}
n'oublis pas de terminer par un \0 pour signaler la fin de la chaîne :
asAlphabet[26] = '\0';
et tu l'enregistre comme ceci
fprintf(canalFichier,"%s",asAlphabet);
De même pour tes autres alphabets.
Autre chose : tu ne dois pas convertir les nombres en int puisque c'est des caractères que tu veut enregistrer dans tonfichier!!!. Donc procède comme pour les lettres.
En espérant avoir pu t'aider
A+
10 avril 2008 à 09:16
FILE *canalFichier = NULL; //déclaration et initilisation d'un canal de communication.
TfmMain *fmMain;
//---------------------------------------------------------------------------
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::buEcrireClick(TObject *Sender)
{
//Inscription du nom dans une variable
AnsiString asNom;
asNom = edNom->Text;
//Inscription du prénom dans une variable
AnsiString asPrenom;
asPrenom = edPrenom->Text;
//Stockage de l'heure du système dans une variable
AnsiString asMonHeure; //Création de la variable asMonHeure
asMonHeure=DateTimeToStr(Now());
//Génération de l'alphabet en majuscules
char cAlphabet[30]={0};
for(int index=0; index <26; index++)
{
cAlphabet[index]=index+65;
}
//Génération de l'alphabet en minuscules
char cAlphabet2[30]={0};
for(int index=0; index <26; index++)
{
cAlphabet2[index]=index+97;
}
//Génération des chiffres de 0 à 9
char cNombre[20]={0};
for(int index=0; index <10; index++)
{
cNombre[index]=index+48;
}
//Ecriture dans le fichier "alphabet.txt"
canalFichier = fopen("alphabet.txt","w"); //ouverture du canal vers le fichier "bonjour.txt" en mode écriture
fprintf(canalFichier,"Projet ALPHABET\n%s\t%s\t%s\n%s\n%s\n%s",asNom,asPrenom,asMonHeure ,cAlphabet, cAlphabet2, cNombre); //écriture du texte dans le fichier alphabet.txt
fclose(canalFichier); //Fermeture du canal
}
//---------------------------------------------------------------------------