exo3.c: implement ROTX where X the number of latin
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 18 Feb 2017 23:49:59 +0000 (00:49 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 18 Feb 2017 23:49:59 +0000 (00:49 +0100)
alphabet letter to rotate.

And make a use of it for X=13.

There's still a lot of rooms for improvements but it works.

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
exo3/exo3.c

index d1b09563b38ddb2d9a7efa01210cb53309f1fa85..89170ea09430b75907e4bec4b994bb8254ec1eeb 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <ctype.h>
 
 //FIXME: Comment the code !!!
 
@@ -26,13 +27,40 @@ void reverseString(char* str) {
     }
 }
 
+// FIXME: this function have issues with non english characters
+void permAlphaChar(char* str, int key) {
+    char alphabet[26] = "abcdefghijklmnopqrstuvwxyz";
+    int str_length = stringLength(str);
+
+    for (int i; i < str_length; i++) { 
+        //if (str[i] == ' ') continue;
+        for (int j = 0; j < 26; j++) {
+            if (str[i] == alphabet[j]) {
+                str[i] = alphabet[(j+key) % 26];
+                break;
+             } else if (str[i] == toupper(alphabet[j])) {
+                str[i] = toupper(alphabet[(j+key) % 26]);
+                break;
+            }
+        }
+    }
+}
+
 int main() {
-    char msg[] = "Bonjour et a bientot";
-    int length = stringLength(msg); 
+    char rev_msg[] = "Bonjour le monde";
+    int rev_length = stringLength(rev_msg); 
+    char perm_msg[] = "Bonjour a tous et toutes";
+    int perm_length = stringLength(perm_msg); 
+
+    printf("La chaine de caracteres a inverser est \"%s\" et a pour longueur %d caractere(s)\n", rev_msg, rev_length);
+    reverseString(rev_msg);
+    printf("La chaine inversee de caracteres est \"%s\"\n", rev_msg);
 
-    printf("La chaine de caracteres est \"%s\" et a pour longueur %d caractere(s)\n", msg, length);
-    reverseString(msg);
-    printf("La chaine inversee de caracteres est \"%s\"\n", msg);
+    printf("\n");
+   
+    printf("La chaine de caracteres a permuter est \"%s\" et a pour longueur %d caractere(s)\n", perm_msg, perm_length);
+    permAlphaChar(perm_msg, 13);
+    printf("La chaine permutee de caracteres est \"%s\"\n", perm_msg);
 
     return 0;
 }