Exercice langage C: Conversion et Palindrome

Exercice 1 (Conversion)

Ecrivez une fonction qui convertit une chaîne de caractères contenant un entier positif en int. La fonction prendra une chaîne de caractères en paramètres et retournera un int. Si la chaîne de caractères contient des caractères non-valides (autres que les chiffres de 0 à 9), la fonction devra retourner 0. Contrairement à l'exercice 2, il ne faut pas utiliser atoi, sinon l'exercice serait trivial.

Exercice 2 (Palindrome)

Ecrivez une fonction qui demande à l'utilisateur d'entrer une chaîne de caractères et qui vérifie si celle-ci est un palindrome. Un palindrome est un mot qui s'écrit de la même manière à l'endroit et à l'envers. Exemple:

sms est un palindrome

stylo n'est pas un palindrome

ressasser est un palindrome


 Exercice 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 int string_to_int(char *chaine) {
      int longueur = strlen(chaine);
      int resultat = 0;
      bool erreur = false;
 
      for (int i=0; ilongueur; i++)
        if (chaine[longueur - 1 - i] >= '0' && chaine[longueur - 1 - i]  '9')
          resultat += int(pow(10, i) * (chaine[longueur - 1 - i] - '0'));
        else
          erreur = true;
 
      if (erreur)
        return 0;
      else
        return resultat;
    }

Exercice 2



1
2
3
4
5
6
7
8
9
10
11
12
13
bool palindrome(char *chaine) {
      bool result = true;
      int longueur = strlen(chaine);
      int i = 0;
 
      while (i  longueur / 2 && result) {
        if (chaine[i] != chaine[longueur - 1 - i])
        result = false;
        i++;
      }
 
      return result;
    }