J'essaie de créer un tableau de caractères composé de quelques lettres et chiffres (la fonction était beaucoup plus complexe au début, mais j'ai continué à la simplifier pour comprendre pourquoi cela ne fonctionne pas correctement). J'ai donc un tableau char dans lequel j'ai mis 2 caractères, et j'essaie d'y ajouter quelques chiffres. Pour une raison que je ne peux pas comprendre, les nombres ne sont pas ajoutés au tableau. C'est peut-être vraiment stupide mais je suis nouveau en C alors voici le code simplifié. Toute aide est très appréciée, merci!Essayer de mettre des chiffres dans un tableau char
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char some_string[20];
char *make_str() {
some_string[0] = 'a';
some_string[1] = 'x';
int random = 0;
int rand_copy = 0;
random = (rand());
rand_copy = random;
int count = 2;
while (rand_copy > 0) {
rand_copy = rand_copy/10;
++count;
}
int i=2;
for (i=2; i<count; i++) {
some_string[i] = random%10;
random = random/10;
}
return (some_string);
}
int main(int argc, const char *argv[]) {
printf("the string is: %s\n",make_str());
return 0;
}
Tout nombre inférieur à 32 (si je me souviens bien) correspondent à un omble chevalier non imprimable – Saphrosit
@axesdenied histoire courte sur les personnages: il n'y a pas des choses telles que lettres un ordinateur. Tout est des nombres binaires. Le type de caractère ne fait pas exception. Lorsque vous écrivez 'some_string [0] = 'a';' vous êtes en train d'écrire 'some_string [0] = 97;', le littéral de caractères est plus facile à lire qu'un nombre ASCII brut. 'random% 10' donne un nombre compris entre 0 et 9. Les chiffres ASCII ont des nombres compris entre 48 ('0') et 57 ('9'). En tapant + '0' ici, vous voulez dire en fait "donnez-moi un nombre aléatoire entre 0-9, puis ajoutez 48", ce qui équivaut à "donnez-moi un nombre aléatoire entre 48 et 57. – Lundin