CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide en C++

Garantito
Garantito
Niveau 2
08 décembre 2005 à 19:01:45

Salut voila j´ai un petit problème je n´arrive pas à établir une fonction qui permettent de déterminer le nombres d´occurences de chacune des lettres passées en paramètre via un tableau de caractères
Merci de me filer un ptit coup de main

lag-it
lag-it
Niveau 10
08 décembre 2005 à 19:33:12

Un truc du genre :

void NombreOccurences(const char chaine[], int occurences[])
{
char *courant;

for(courant=chaine ; *courant!=´\0´ ; courant++)
occurences[*courant]++;
}

Et pour tester :

  1. include <iostream>

using namespace std;

int main()
{
char chaineTest[] = "Hello, world !"
int occurences[sizeof(char)];

NombreOccurences(chaineTest, occurences);

for(int boucle=0 ; boucle<sizeof(char) ; boucle++)
cout << (char)boucle << " : " << occurences[boucle] << endl;;

return 0;
}

Pas testé, mais ca devrait marcher :ok:

lag-it
lag-it
Niveau 10
08 décembre 2005 à 19:35:44

Vire le const dans "const char chaine[]" et rajoute le point virgule après " char chaineTest[] = "Hello, world !" " et c´est bon.

lag-it
lag-it
Niveau 10
08 décembre 2005 à 19:40:46

Bon je reprends parce que j´ai fait pas mal de bourdes en allant trop vite :o))
Deja faut remplacer les sizeof(char) par sizeof(char)*256, remplacer ` par ´ (caml...) et enfin ne pas oublier d´intialiser le tableau d´occurences à zero...

Garantito
Garantito
Niveau 2
08 décembre 2005 à 20:50:54

int main(){
int compteLettres(const char tab[MAX],int nbCar, int nbOcc[26]){
for(int i=0;i<26;i++){
nbOcc[i]=0;
}

apres je suis coincé :(

lag-it
lag-it
Niveau 10
08 décembre 2005 à 21:15:34

Mais c´est quoi ton problème ?
Compter le nombre d´occurences de chaques lettres ou compter le nombre total de lettre ?
Parce que si c´est le nombre total de lettres, utilise "strlen" de string.h, sinon l´exemple que je t´ai donné fonctionne, voila version corrigée :

void NombreOccurences(char chaine[], int occurences[])
{
char *courant;

for(courant=chaine ; *courant!=´\0´ ; courant++)
occurences[*courant]++;
}

Il suffit de lui passer la chaine a traiter et un tableau de 256 cases préalablement initialisées à zero.

Ensuite, pour connaitre le nombre d´occurences de la lettre A par exemple, si le tableau qui stocke le nombre d´occurences s´appelle "occurences", tu fais : occurences[´A´].

Ceci dit j´ai l´impression que tu n´es pas encore très famillié avec le C et le code ASCII, regarde un tuto au besoin, parce que ce que tu essaye de faire nécessit déjà quelques connaissances sur les tableaux, les pointeurs etc...

lag-it
lag-it
Niveau 10
08 décembre 2005 à 21:16:23

"Mais c´est quoi ton problème ? "

Je m´appercois à postériori que la phrase peut être mal interprétée.

C´est bien entendu dit sans aucune animosité :)

Garantito
Garantito
Niveau 2
08 décembre 2005 à 21:20:48

merci de ton aide :)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment