mirror of https://github.com/TheAlgorithms/C
61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
#include <stdio.h>
|
|
#include <string.h> // we include the library string.h to the use of string
|
|
|
|
void saisie(
|
|
char *cpointeur); // Prototypes of the three functions used in the program
|
|
int compte(char *s);
|
|
char *miroir(char *s);
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
char chaine[20];
|
|
saisie(chaine);
|
|
printf("miroir est %s", miroir(chaine));
|
|
}
|
|
// this function is used to put a string
|
|
void saisie(char *cpointeur)
|
|
{
|
|
printf("saisir une chaine\n");
|
|
scanf("%s", cpointeur);
|
|
}
|
|
/* the function miroir (in french ) it means "mirror" , the major idea is to
|
|
permute the first caractere with the last using an auxilary variable (aux) the
|
|
the 2nd character with the penultimate one and so on . we made a call to the
|
|
function (compte) which counts the length of the string . As you can see clearly
|
|
, I substruct 1 from the equation k = compte(s)-1 ; to get rid of the EOF
|
|
caractere which is '\0' because it is not a caractere from the string typed */
|
|
char *miroir(char *s)
|
|
{
|
|
int i;
|
|
char aux;
|
|
int k;
|
|
k = compte(s) - 1;
|
|
i = 0;
|
|
while (i <= k)
|
|
{
|
|
aux = s[i];
|
|
s[i] = s[k];
|
|
s[k] = aux;
|
|
k--;
|
|
i++;
|
|
}
|
|
|
|
return s;
|
|
}
|
|
|
|
// compte plays the role of strlen so we can change it by an strlen function if
|
|
// you want that
|
|
int compte(char *s)
|
|
{
|
|
char *p;
|
|
int k;
|
|
p = s;
|
|
k = 0;
|
|
while (*p != '\0')
|
|
{
|
|
p++;
|
|
k++;
|
|
}
|
|
return k;
|
|
}
|