[Débutant] petit problème
Je voudrais stocker les mots d'une phrase!
Pour cela, je créer une matrice de 'char' !
Puisque je ne connais pas la phrase à l'avance, je dois faire une allocation dynamique de celle-ci! C'est donc ce point qui me pause problème !
Si vous avez une meilleur solution pour atteindre mon objectif, vous pouvez la partager avec moi !
En attendant, voilà mon code ainsi que les erreurs qu'il génère :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream.h>
int main(int argc, char* argv[])
{
int a=5, // Nombre de mot dans la phrase
b=3; // Nombre de caractères maximum dans un mots
char commande = new char[a][b];
return 0;
}
/* Voici les erruers généré par ce petit bout de code :
error C2540: non-constant expression as array bound
error C2440: 'initializing' : cannot convert from 'char (*)[1]' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast*/ |
Merci pour vos réponses !
Re: [Débutant] petit problème
Citation:
Envoyé par angsthase
Si vous avez une meilleur solution pour atteindre mon objectif, vous pouvez la partager avec moi !
:faq: -> http://c.developpez.com/faq/cpp/?page=strings à lire entièrement
et inclue :
Code:
#include <iostream>
au lieu de :
Code:
#include <iostream.h>
à lire aussi dans la FAQ...
Re: [Débutant] petit problème
Code:
#include <iostream.h>
L'erreur n'a rien à voir, mais en effet <iostream.h> est déprévié, il faut utiliser <iostream>.
Code:
char commande = new char[a][b];
Tes erreurs viennent d'ici.
Deux erreurs graves :
- Tu veux attribuer un tableau à deux dimensions à une variable de type char ...
- Il n'y a pas d'opératur pour allouer un tableau à deux dimensions en C++. En général, on alloue un tableau de ligne/colonne, puis on alloue chaque ligne/colonne.
Code:
1 2 3 4 5 6 7 8
| int **tableau;
tableau = new int * [a];
for (int i = 0; i < a; ++i) {
tableau[i] = new int [B];
}
/* Puis initialiser les données */
/* avec les delete[] qui vont bien plus loin dans le code */ |
Citation:
Envoyé par angsthase
Et la classe string mets interdite ......
Alors fait du C ...
<avec un peu de retard, c'est une redite du post ci dessus ^^>