Langage C, pointeurs, chaîne de caractères
Résolu/Fermé
A voir également:
- Langage C, pointeurs, chaîne de caractères
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
2 réponses
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
23 janv. 2008 à 20:52
23 janv. 2008 à 20:52
en C, une chaîne de caractère est un tableau. Un tableau de caractères, dont le dernier est '\0', le fin de chaîne.
Une chaîne peut être désignée par un pointeur (sur charactère) qui pointe lsur le premier caractère de la chaîne.
Tes boucles for() n'ont pas de corps de fonction, il faut néamoins mettre un ';' après :
for ( ; *p != '\0' ; p++, i++);
sinon il va exécuter l'instruction suivante à chaque boucle au lieu d'une seule fois après être sorti de la boucle !!!
De sorte que ta fonction est correcte au niveau compilation, mais cela ne fait pas ce que tu attends !
Remarque que tu peux écrire de façon plus simple :
for ( ; *p ; p++ , i++ );
ou encore plus simplment toute ta fonction en une seule ligne :
char *compte(char *tab1, char *tab2) { return ( (strlen(tab1) > strlen(tab2) ? tab1 : tab2 ); }
Une chaîne peut être désignée par un pointeur (sur charactère) qui pointe lsur le premier caractère de la chaîne.
Tes boucles for() n'ont pas de corps de fonction, il faut néamoins mettre un ';' après :
for ( ; *p != '\0' ; p++, i++);
sinon il va exécuter l'instruction suivante à chaque boucle au lieu d'une seule fois après être sorti de la boucle !!!
De sorte que ta fonction est correcte au niveau compilation, mais cela ne fait pas ce que tu attends !
Remarque que tu peux écrire de façon plus simple :
for ( ; *p ; p++ , i++ );
ou encore plus simplment toute ta fonction en une seule ligne :
char *compte(char *tab1, char *tab2) { return ( (strlen(tab1) > strlen(tab2) ? tab1 : tab2 ); }
slt tous
j'ai un program en c ,je veux que m'apronne cette prog
struct list *creation()
{
struct neoud *p;
struct list *plist;
plist=malloc(sizeof(*plist));
if (plist=NULL)
{
p=malloc(sizeof(*p));
if (p !=NULL)
{p-> suivant=NULL;
p-> valeur=0;
plist-> start=p;
plist->courant =NULL;
}}
else
{
printf("___________");
return plist;
}}
void insertion (struct list *p, void *val)
{
struct neoud *pi;
pi=malloc(sizeof(*pi));
pi-> valeur =val;
if(pi)
{
if (p->courant)
{
p-> start->suivant=pi;
pi->suivant=NULL;
}}
else
{
pi->suivant =p->courant->suivant;
p-> courant->suivant=pi;
}}
j'ai un program en c ,je veux que m'apronne cette prog
struct list *creation()
{
struct neoud *p;
struct list *plist;
plist=malloc(sizeof(*plist));
if (plist=NULL)
{
p=malloc(sizeof(*p));
if (p !=NULL)
{p-> suivant=NULL;
p-> valeur=0;
plist-> start=p;
plist->courant =NULL;
}}
else
{
printf("___________");
return plist;
}}
void insertion (struct list *p, void *val)
{
struct neoud *pi;
pi=malloc(sizeof(*pi));
pi-> valeur =val;
if(pi)
{
if (p->courant)
{
p-> start->suivant=pi;
pi->suivant=NULL;
}}
else
{
pi->suivant =p->courant->suivant;
p-> courant->suivant=pi;
}}