Comment puis-je convertir char a [0] en int b [0] où b est un tableau int alloué dynamicment de manière dynamic
j’ai essayé
char a[] = "4x^0"; int *b; b = new int[10]; char temp = a[0]; int temp2 = temp - 0; b[0] = temp2;
Je veux 4 mais ca me donne ascii valeur 52
Aussi faire
a[0] = aoti(temp);
me donne l’erreur: conversion non valide de ‘char’ à ‘const char *’, argument d’initialisation 1 de ‘int atoi (const char *)’
Tu as besoin de faire:
int temp2 = temp - '0';
au lieu.
La version atoi () ne fonctionne pas car atoi () fonctionne sur des chaînes et non sur des caractères individuels. Donc, cela fonctionnerait:
char a[] = "4"; b[0] = atoi(a);
Notez que vous pouvez être tenté de faire: atoi (& temp) mais cela ne fonctionnerait pas, car & temp ne pointe pas vers une chaîne terminée par un zéro.
Vous pouvez remplacer la séquence complète:
char a[] = "4x^0"; int *b; b = new int[10]; char temp = a[0]; int temp2 = temp - 0; b[0] = temp2;
avec le plus simple:
char a[] = "4x^0"; int b = new int[10]; b[0] = a[0] - '0';
Pas besoin de déconner avec les variables temporaires. La raison pour laquelle vous devez utiliser '0'
au lieu de 0
est que le premier est le caractère “0” qui a la valeur 48 plutôt que la valeur 0.