[C/C++] [Debutant]Tableaux à String

Le côté programmation du développement d'un jeu vidéo.

Messagepar Lightness1024! » 09 Aoû 2005, 23:30

Là tu as tout de même un plantage, tu n'as pas alloué de place pour les éléments de ton vector. Il faut ajouter avec push_back, ou construire un vector directement dimensionné correctement.


ah bon, j'avoue que je ne connais pas bien STL, dans le cas des maps si on fait ca, l'allocation des indices affectés est automatique.
je pensait que ca serait pareil pour les vector.

Il manque un "= 0" pour initialiser i


ah ben oui tiens. ( :D )

d'ailleurs ca me fait penser que j'ai lu qq part que la classe "int" avait un constructeur qui l'initialisait à zéro. cependant le constructeur par defaut dans les déclarations old-style C n'initialisait pas la valeur, curieux comme norme.
Avatar de l’utilisateur
Lightness1024!
Hello World, I'm new !
 
Messages: 698
Inscription: 11 Avr 2005, 12:00
Localisation: paris

tableau a string

Messagepar wanted » 29 Mar 2012, 14:55

quelqu'un pourrait il m'aider.voila je souhaiterai creer un tableau de 7 colonnes et deux lignes de caracteres puis lire les caracteres en fonction des colonnes.quand je fais sa sa marche
#include <string>
#include <cstdio>
#include <iostream>
using namespace std;

int main(void)
{
char MyArray[2][7]={{'B','o','n','j','o','u','r'},{'m','o','n','s','i','u','r'}};
int ind_l, ind_c ;
ind_c = 0;
while(ind_c < 7){
ind_l = 0;
while(ind_l < 2){
cout << MyArray[ind_l][ind_c];
ind_l++;
}
cout << "";
ind_c++;
}
system("PAUSE");
return 0;

}
mai mon probleme c'est que jaimerai que l'utilistaeur entre ces chaines.donc je fais sa mais sa marche pas
#include <string>
#include <cstdio>
#include <iostream>
using namespace std;

int main(void)
{
string MyArray[2][7];
int ind_l, ind_c ;
cout << "taper vos deux chaines ";
ind_c = 0;
while(ind_c < 7){
ind_l = 0;
while(ind_l < 2){
cin >> MyArray[ind_l][ind_c];
cout << MyArray[ind_l][ind_c];
ind_l++;
}
cout << "";
ind_c++;
}
system("PAUSE");
return 0;

}
wanted
Hello World, I'm new !
 
Messages: 2
Inscription: 29 Mar 2012, 14:45

Messagepar Mokona » 29 Mar 2012, 15:58

Code: Tout sélectionner
#include <string>
#include <cstdio>
#include <iostream>
using namespace std;

int main(void)
{
string MyArray[2][7]; // Ici est défini un tableau à deux dimensions de chaines de caractères.
  // Dans le premier code, c'étaient un tableau de caractères.

  int ind_l, ind_c ;
  cout << "taper vos deux chaines "; // Ici, il manque une majuscule et j'aurais plutôt mis de l'impératif. Mais ça ne causera pas de bug :)
ind_c = 0;
  while(ind_c < 7){
     ind_l = 0;
    while(ind_l < 2){
                 cin >> MyArray[ind_l][ind_c]; // Tu demandes une chaîne (sans espaces)
                cout << MyArray[ind_l][ind_c]; // Tu affiches cette même chaîne
      ind_l++;
    }
    cout << ""; // Tu n'affiches strictement rien.
    ind_c++;
  }
system("PAUSE");
return 0;

}


Au final, ce programme fonctionne très bien, mais ne fais pas ce que tu comptais : il lit 7*2 -> 14 chaînes de caractères (sans espace) sur l'entrée standard puis sort.

Tu peux essayer, ça marche.
Mokona
Hello World, I'm new !
 
Messages: 1686
Inscription: 13 Mar 2005, 13:00

Messagepar thesus » 29 Mar 2012, 16:10

Si ce que tu stock est liée, je te conseil de lire les différents types de conteneur en C++
Avatar de l’utilisateur
thesus
Hello World, I'm new !
 
Messages: 198
Inscription: 29 Déc 2008, 14:14

Messagepar wanted » 30 Mar 2012, 13:39

enfaite je veux creer un algorithme de cryptage simple.je veux creer un tableau de 7 colonnes et le nombre de ligne depend de la phrase ou de la chaine qu'entre l'utilisteur.puis ensuite afficher la phrase(les caracteres) en fonction des colonnes pas des lignes.aidez moi svp
wanted
Hello World, I'm new !
 
Messages: 2
Inscription: 29 Mar 2012, 14:45

Messagepar teto » 30 Mar 2012, 15:20

si je comprneds bien tu veux que la phrase "hello_my_beautiful_world" (espace= "_") soit affiché après ton algo par:
Code: Tout sélectionner
h  e   l    l   o   _   m
m  y  _   b   e  a   u
t   i   f    u   l   w   o
r   l   d 

"hmtr eyil l_fd lbu oel _aw muo" ?

tu peux avoir un tableau a une seule dimension de la taille du texte puis tu calcules ou mettre tes lettres selon leur position dans la phrase
tableau[7*noLigne + noColonne] avec noColonne = Position%7; et NoLigne = (position-noColonne)/7.
apres t'as plus qu'a afficher 7 par 7 les caracteres.
Avatar de l’utilisateur
teto
 
Messages: 1168
Inscription: 26 Juil 2005, 19:02
Localisation: /home/Paris

Précédente

Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 invités

cron