Obtenez le numéro d’un tableau et atsortingbuez-le à un entier

Je travaille sur mes devoirs et j’essaie d’obtenir deux caractères qui sont des nombres d’un tableau, par exemple ABC10DEF

Je veux obtenir 10 et le stocker dans un type int .

  number_holder_1 = back[3] - '0'; number_holder_2 = back[4] - '0'; number = number_holder_1 * 10 + number_holder_2; 

Cela ne fonctionne pas, je ne sais pas pourquoi.

Lorsque number_holder_1 la valeur de number_holder_1 il affiche 1 et lorsque number_holder_2 il affiche 0 mais lorsque number_holder_2 number il affiche uniquement 0

Je ne sais pas comment

METTRE À JOUR:

Le number , number_holder_1 et number_holder_2 sont définis en tant que type int .

le tableau back qui détient ABC10DEF passe du principal.

Cela semble être une erreur de mise en œuvre, car en utilisant ce que vous avez donné, avec de meilleurs noms de variables, cela fonctionne.

 #include  #include  int letter2int(char c) { int n; if (isdigit(c)) { n = c - '0'; } else { n = -1; /* error */ } /* for debugging */ printf("For character '%c' we get number '%d'.\n", c, n); return n; } int main(int argc, char** argv) { const char str[] = "ABC10DEF"; int tens, ones; int result; tens = letter2int(str[3]); ones = letter2int(str[4]); result = tens * 10 + ones; printf("Result: %d\n", result); return 0; } 

Cela peut être généralisé pour former une fonction atoi (ASCII en entier) ou extraire le premier nombre apparaissant dans une chaîne (terminé par un caractère non numérique) en utilisant une boucle et un pointeur de caractère pour indexer la chaîne str .

En utilisant i comme index de base zéro, result += number * (int)pow(10, i); .