EXERCICE IX
Chaînes de
caractères
- Faire la fonction strcmp qui compare
lexicographiquement deux chaînes s et t passées en paramètre et
retourne une valeur:
- négative si s est
“inférieure” à t dans l’ordre lexico,
- nulle si les deux
chaînes sont égales,
- positive si s est
“supérieure” à t dans l’ordre lexico.
int strcmp(char
s[],char t[]) - la version qui utilise des tableaux
int strcmp1(char
*s,char *t) - la version qui travaille avec des pointeurs
#include <stdio.h>
int strcmp(char s[],char t[]);
int strcmp1(char *s,char *t);
void main()
{char s[20],t[20];
printf("Entrer chaine
s.\n");
gets(s);
printf("Entrer chaine
t.\n");
gets(t);
printf("Le resultat de
comparaison=%d\n",strcmp(s,t));
printf("Le resultat de comparaison=%d\n",strcmp1(s,t));
}
int strcmp(char s[],char t[])
{ int i;
for(i=0;s[i]==t[i];i++)
if(s[i]=='\0')
return(0);
return(s[i]-t[i]);
}
int strcmp1(char *s,char *t)
{ for(;*s==*t;s++,t++)
if(*s=='\0')
return(0);
return(*s-*t);
}
- Faire la fonction strcat qui concatène la
chaîne t à la chaîne s. On suppose que s est assez
grande (au niveau place mémoire). Un pointeur sur s est
retourné. Faire les deux versions: a) void strcat(char *s,char *t);
b) char *strcat(char *s,char *t).
- Faire la fonction miroir qui copie dans s la
chaîne-miroir de t et retourne un pointeur sur s.
- Faire un programme qui lit des
mots dans un tableau de chaînes de caractères et trie les
mots en ordre alphabétique.