Chaine de caractères

Chaine de caractères - C - Programmation

Marsh Posté le 22-05-2004 à 00:18:20    

Je suis desesperement nul en C
 
Regardez ce code :
 

Code :
  1. char* test = (char*)malloc(10 * sizeof(char));
  2. for(int i = 0; i < 10; i++){
  3. *test = "a";
  4. test++;
  5. }


 
Erreur de compilaiotn : cannot convert from 'char [2]' to 'char'
 
Au secours   [:toad666]

Reply

Marsh Posté le 22-05-2004 à 00:18:20   

Reply

Marsh Posté le 22-05-2004 à 00:19:49    

bozocarzu a écrit :

Je suis desesperement nul en C
 
Regardez ce code :
 

Code :
  1. char* test = (char*)malloc(10 * sizeof(char));
  2. for(int i = 0; i < 10; i++){
  3. *test = "a";
  4. test++;
  5. }


 
Erreur de compilaiotn : cannot convert from 'char [2]' to 'char'
 
Au secours   [:toad666]


 
et en mettant *test = 'a'; ?
 
mais y doit avoir d'autres erreurs

Reply

Marsh Posté le 22-05-2004 à 00:33:01    

le problème c'est que tu as perdu test ...
 
utilise ton indice test[i] = 'c'
 
ou memset
 
memset(test, 'c', n);

Reply

Marsh Posté le 22-05-2004 à 00:34:27    

Taz a écrit :

le problème c'est que tu as perdu test ...
 
utilise ton indice test[i] = 'c'
 
ou memset
 
memset(test, 'c', n);


 
Comment ça j'ai perdu test ?

Reply

Marsh Posté le 22-05-2004 à 00:41:39    

Code :
  1. char *num = (char*)malloc(10 * sizeof(char));
  2. for(int i = 0; i < 10; i++){
  3.  num[i] = 'a';
  4. }
  5. MessageBox(num);


 
Pourquoi en sortie j'ai : aaaaaaaaaaýýýý ?
 
J'ai bien mes 10 "a" mais j'ai trop de truc apres  :cry:  
 
Merci pour votre aide

Reply

Marsh Posté le 22-05-2004 à 00:44:03    

en C une chaîne se finit par un octet à zéro


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-05-2004 à 00:46:05    

Merci antp, j'avais oublié ce con de caractères nul

Reply

Marsh Posté le 22-05-2004 à 00:53:51    

bozocarzu a écrit :

Comment ça j'ai perdu test ?

ben tu déplace test, tu as perdu le début de ta chaine, ce même pointeur qui te donne le début de ta zone mémoire et qui te servira à la désallouer

Reply

Marsh Posté le 22-05-2004 à 01:06:16    

Taz a écrit :

ben tu déplace test, tu as perdu le début de ta chaine, ce même pointeur qui te donne le début de ta zone mémoire et qui te servira à la désallouer


 
Oui je le deplace, mais je sans toujours où il est !
 
En tous cas merci pour votre aide j'ai réussi à faire se que je voulais
 
Passer du php au c, ça fais mal !!! En php on fais n'importe quoi avec les tableau et les variables alors qu'en c, on a meme pas le droit a une petite erreur  :sweat:

Reply

Marsh Posté le 22-05-2004 à 09:50:30    

ben ouasi c'est ca un vrai langage de programamtion :o

Reply

Marsh Posté le 22-05-2004 à 09:50:30   

Reply

Marsh Posté le 22-05-2004 à 10:31:42    

ben vu tes compétences, si j'étais toi, je me ferais pas confiance

Reply

Marsh Posté le 22-05-2004 à 10:54:28    

Taz a écrit :

ben vu tes compétences, si j'étais toi, je me ferais pas confiance


 
Tu dis ca pour moi  :D  :whistle:

Reply

Marsh Posté le 22-05-2004 à 13:00:52    

a mon avis c'est plutot pour :
 

Citation :

Oui je le deplace, mais je sans toujours où il est !  

Reply

Marsh Posté le 22-05-2004 à 13:41:40    

J'avoue que je suis déçu:
Taz n'a meme pas sourcillé devant la ligne
char *num = (char*)malloc(10 * sizeof(char));  
 
Une grande lassitude??
A+,

Reply

Marsh Posté le 22-05-2004 à 13:45:15    

Taz a écrit :

ben vu tes compétences, si j'étais toi, je me ferais pas confiance


 
Bas faut faire des erreurs pour apprendre ....

Reply

Marsh Posté le 22-05-2004 à 13:47:03    

Citation :

J'avoue que je suis déçu:  
Taz n'a meme pas sourcillé devant la ligne  
char *num = (char*)malloc(10 * sizeof(char));  
 
Une grande lassitude??


 
on voit ca partout et c'est enseigné partout, le genre de truc que t'aura jamais fini de repeter


Message édité par skelter le 22-05-2004 à 13:47:45
Reply

Marsh Posté le 22-05-2004 à 13:49:57    

skelter a écrit :

Citation :

J'avoue que je suis déçu:  
Taz n'a meme pas sourcillé devant la ligne  
char *num = (char*)malloc(10 * sizeof(char));  
 
Une grande lassitude??


 
on voit ca partout et c'est enseigné partout, le genre de truc que t'aura jamais fini de repeter


 
Bas c'est quoi qui ne va pas dans cette ligne ?????
 
Je ne demande qu'a apprendre

Reply

Marsh Posté le 22-05-2004 à 13:52:50    

le cast est inutile, la conversion void* -> char* est impicite
 
char *num = malloc(10);  

Reply

Marsh Posté le 22-05-2004 à 13:54:13    

et surtout, sizeof(char) == 1 par définition

Reply

Marsh Posté le 22-05-2004 à 13:54:45    

skelter a écrit :

le cast est inutile, la conversion void* -> char* est impicite
 
char *num = malloc(10);


 
Va dire ça au compilateur toi : cannot convert from 'void *' to 'char *'

Reply

Marsh Posté le 22-05-2004 à 13:56:35    

Taz a écrit :

et surtout, sizeof(char) == 1 par définition


 
Pour ça je suis d'accord que c'est inutile, mais c'est pas le cas pour tous les type, c'est pour ça que je met sizeof

Reply

Marsh Posté le 22-05-2004 à 13:58:55    

mais tu compile avec koi?

Reply

Marsh Posté le 22-05-2004 à 14:00:02    

skelter a écrit :

mais tu compile avec koi?


vc++ 6

Reply

Marsh Posté le 22-05-2004 à 14:00:12    

bozocarzu a écrit :

Va dire ça au compilateur toi : cannot convert from 'void *' to 'char *'

Tu aurais donc un compilateur tellement vieux qu'il n'est pas ANSI compliant??
A+,

Reply

Marsh Posté le 22-05-2004 à 14:00:18    

compile en mode c

Reply

Marsh Posté le 22-05-2004 à 14:01:13    

avec tous les patchs??
A+,

Reply

Marsh Posté le 22-05-2004 à 14:03:49    

faut vivre avec son temps, vc++6 c'est vieux ==>vs2003

Reply

Marsh Posté le 22-05-2004 à 14:04:35    

Avec aucun patch !  :D

Reply

Marsh Posté le 22-05-2004 à 14:05:35    

skelter a écrit :

faut vivre avec son temps, vc++6 c'est vieux ==>vs2003


 
C'est sur, mais j'apprend, et vu mon super niveau en c je ne pense pas que sa change grand chose

Reply

Marsh Posté le 22-05-2004 à 14:07:02    

pour apprendre le mieux c'est devcpp, et c'est gratuit en plus

Reply

Marsh Posté le 22-05-2004 à 14:07:32    

Pendant que vous êtes la :
 
J'ouvre un fichier texte en lecture :
 
FILE *client = fopen("client.txt","r" );
 
Comment je peut faire pour connaitre le nombre de caractères dans se fichier ?

Reply

Marsh Posté le 22-05-2004 à 14:08:17    

skelter a écrit :

pour apprendre le mieux c'est devcpp, et c'est gratuit en plus


 
On peut faire du graphique simplement avec devcpp ?

Reply

Marsh Posté le 22-05-2004 à 14:09:35    

ca depend ce que tu entend par la, moi par exemple je fais de l'opengl avec devcpp sans avoir eu à installer d'autres bibliotheques que celles fournies par defaut


Message édité par skelter le 22-05-2004 à 14:10:02
Reply

Marsh Posté le 22-05-2004 à 14:11:56    

Quand je dis simplement, c'est faire des champs de formulaire

Reply

Marsh Posté le 22-05-2004 à 14:12:54    

en win32, mais tu n'a pas de mfc avec devcpp

Reply

Marsh Posté le 22-05-2004 à 14:14:00    

Enfin maintenant que j'ai commencer avec vc++ 6, je vais pas tous reprendre avec devcpp


Message édité par bozocarzu le 22-05-2004 à 14:14:12
Reply

Marsh Posté le 22-05-2004 à 14:18:03    

c'est toi qui voit, moi aussi avant j'etais sous vc++ 6...

Reply

Marsh Posté le 22-05-2004 à 14:21:09    

lol
 
Sinon tu ne serais pas comment faire pour connaitre le nombre de caractères dans un fichier texte ?

Reply

Marsh Posté le 22-05-2004 à 14:21:26    

bozocarzu a écrit :

Avec aucun patch !  :D

va chercher le SP6, c'est gratuit. http://msdn.microsoft.com/visualc/ [...] fault.aspx
A+,

Reply

Marsh Posté le 22-05-2004 à 14:25:25    

bozocarzu a écrit :

lol
 
Sinon tu ne serais pas comment faire pour connaitre le nombre de caractères dans un fichier texte ?


 
le nombre de caractere c'est ca taille, tu utilise quellle api, win32, mfc, autre ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed