[Résolu)]Problème affectation chaine de caractère

Problème affectation chaine de caractère [Résolu)] - C++ - Programmation

Marsh Posté le 06-09-2006 à 16:57:41    

One ne se moque pas, je débute :o  
 
 
voilà je dois faire un programmerpour classer des noms en fonction de leur fréquence d'apparition, le problème c'est que j'ai un soucis lors de la compilation, il me met lvalue required dans certaines parties
 
le problème  je rencontre peut être simplifié dans ce petit programme
 
#include<stdio.h>
#include<conio.h>
 
 
char t[20][10];
 
void main ()
{
clrscr();
 
scanf("%s",&t[0]);
t[1]=t[0];
 
getch();
 
}
 
sur la ligne t[1]=t[0] il me mets lvalue required, pkoi et comment remédier à ce soucis
 
Merci


Message édité par exhortae le 11-09-2006 à 14:20:35
Reply

Marsh Posté le 06-09-2006 à 16:57:41   

Reply

Marsh Posté le 06-09-2006 à 17:08:23    

c'est parce que tu essaies d'affecter une nouvelle valeur à t[1], alors que celui-ci est constant puisque tu as déclaré ta matrice statiquement.
 
Ca marcherait si tu avais une déclaration de la forme 'char **t' et les allocations dynamiques qui vont bien.
 
Je ne sais pas exactement ce que tu veux faire, mais un 'strcpy (t[1], t[0])' (ou mieux, strncpy) te conviendront sans doute.
Tu devrais faire attention aux débordements de buffers, à la saisie des chaines de caractères, etc. Autant prendre de bonnes habitudes dès le départ.
 
EDIT: c'est du C, ce que tu as fait là... En C++ il serait plus judicieux d'utiliser des string.


Message édité par franceso le 06-09-2006 à 17:09:21

---------------
TriScale innov
Reply

Marsh Posté le 06-09-2006 à 17:45:45    

oki, je comprends, jvais aller faire un tour voir comment on utilise strcpy en fonction de ce que je veux faire
 
merci pour ton aide

Reply

Marsh Posté le 07-09-2006 à 22:28:42    

Tu ferais bien aussi d'acheter un bouquin pour le C et/ou un bouquin pour le C++, (ce ne sont pas du tout les mêmes langages), car si tu en as un actuellement, tu peux le mettre à la poubelle, le prototype void main() n'a jamais existé, tout au moins en C.

Reply

Marsh Posté le 07-09-2006 à 22:41:54    

exhortae a écrit :

oki, je comprends, jvais aller faire un tour voir comment on utilise strcpy en fonction de ce que je veux faire
 
merci pour ton aide


pour appuyer Trap D, strcpy c'est du C, la distinction est importante à faire :)


Message édité par _darkalt3_ le 07-09-2006 à 22:42:50

---------------
Töp of the plöp
Reply

Marsh Posté le 07-09-2006 à 23:38:29    

Trap D a écrit :

Tu ferais bien aussi d'acheter un bouquin pour le C et/ou un bouquin pour le C++, (ce ne sont pas du tout les mêmes langages), car si tu en as un actuellement, tu peux le mettre à la poubelle, le prototype void main() n'a jamais existé, tout au moins en C.


 
lol, ça doit bien faire plusieurs moi que je fais ça, et là je découvre que c'est pas bon
 
Merci pour le conseil, je crois qu'effectivement il va me falloir plus de rigueur dans ma méthode.  

Reply

Marsh Posté le 08-09-2006 à 00:13:16    

Soit d'y en passant vous auriez pas le titre d'un bon bouquin sur le c (en français de préférence)
 
merci

Reply

Marsh Posté le 08-09-2006 à 00:18:09    

Reply

Marsh Posté le 08-09-2006 à 09:12:50    

exhortae a écrit :

Soit d'y en passant vous auriez pas le titre d'un bon bouquin sur le c (en français de préférence)
 
merci


y'en a vraiment plein le forum, trop pour les citer; voir bibliolinks et fonction recherche

Reply

Marsh Posté le 08-09-2006 à 09:37:20    


 
:jap:
 
 
 

_darkalt3_ a écrit :

y'en a vraiment plein le forum, trop pour les citer; voir bibliolinks et fonction recherche


 
 
 oki jvais chercher
 
merci


Message édité par exhortae le 08-09-2006 à 09:38:12
Reply

Marsh Posté le 08-09-2006 à 09:37:20   

Reply

Marsh Posté le 11-09-2006 à 14:19:16    

Je up juste pour dire que mon problème est résulu (avec strcopy et strcomp que je ne conaissait pas), merci pour votre aide

Reply

Sujets relatifs:

Leave a Replay

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