A propos d'un string dans un tableau de char

Fermé
sophie34 - 15 nov. 2009 à 10:29
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 15 nov. 2009 à 12:43
Bonjour,
lors du cours, l'enseignant nous a dit qu'un tableau de char qui représente un string se finit obligatoirement par un '/0', j'ai voulu m'en assurer avec ce code qui doit afficher les 6 premières cases du tableau, soit A R B R E 0
mais il ne m'affiche que A R B R E et pas de '/0'. Savez-vous pourquoi?

using namespace std;
#include <iostream>
int main(){
char mes[]="arbre";
cout<<mes[0];
cout<<mes[1];
cout<<mes[2];
cout<<mes[3];
cout<<mes[4];
cout<<mes[5];
}


merci :)
A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
15 nov. 2009 à 11:59
Car '\0' n'affiche rien. C'est juste le caractère nul dont son code ascii est 0.
Affiche le code ascii des caractères plutôt que leurs caractères et tu verras bien que mes[5] vaut 0.

Cdlt
0
merci pour ta réponse fiddy :)
mais dis moi, quelle est la fonction en C qui affiche l'équivalent en ASCI des char?
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
15 nov. 2009 à 12:30
Il n'y a pas de fonction particulière. Il suffit d'imaginer un programme du genre:
#include <iostream>
using namespace std;

int main()
{
  char mes[] = "branche";
  cout << hex << showbase;
  for (unsigned int i=0; i< sizeof(mes); i++)
    cout << (int)mes[i] << endl;
  return (0);
}

Bonne continuation.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
15 nov. 2009 à 12:29
Attention, ton code c'est du C++ et non du C ;-))).
Pour afficher le code ascii, un simple cast suffira.
cout << (int)mes[5];
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
15 nov. 2009 à 12:43
Voici le code qui te permet d'afficher tous les caractères ascii :
#include <iostream>
using namespace std;

int main() {
  char mes[] = "arbre";
  for (size_t i=0; i<sizeof mes; i++)
    cout << (int)mes[i] << endl;
}
0