Question simple, mais je sèche?
Je voudrais l'élément j de ma chaine de caractère pointé par mon pointeur.Code:
1
2
3
4
5 for(int j=0; j< taille; j++){ char * name;// atoi( name[j]); ...
Merci d'avance.
Version imprimable
Question simple, mais je sèche?
Je voudrais l'élément j de ma chaine de caractère pointé par mon pointeur.Code:
1
2
3
4
5 for(int j=0; j< taille; j++){ char * name;// atoi( name[j]); ...
Merci d'avance.
Je ne comprends rien à ce que tu fais mais pour repondre à ta question (enfin je crois).
Code:
1
2 char * chaine = "bonjour"; char c = chaine[2];//c == 'n'
Ben justement en fait atoi(const char *) prend un const char * et je voudrais l'adresse de l'élément j de mon pointeur de character.
avec
J'ai besoin de l'adresse et pas du caractère, j'ai bien essayer avec &name[j] cela ne marche pas.Citation:
char * name = "bonjour";
atoi(name[j]);
error: invalid conversion from `const char' to `const char*'
Bonjour,
atoi permet de convertir une chaine de caractères en entier, en allant lire ce qui est écrit dans la chaine.
Pour récupérer une adresse, on peut passer partir de name :
Code:
1
2
3
4
5
6 char name[] = "bonjour"; char *adr; /* on fait pointer adr vers le j */ adr = name + 3; printf("adresse du %c : %p\n", *adr, adr);
Je viens d'essayer ceci :
mais voilà ce que j'obtiensCode:
1
2
3
4
5
6
7
8
9
10 char name[] = "viveleschacahuetes"; char * stTemp; int ascii = 0; for(int j=0; j< 18; j++) { printf("%c", name[j]); stTemp = name + j; ascii = atoi( stTemp ); printf("\tascii=%d\t", ascii); }
j'ai du manqué qq chose, mon but c'est d'avoir le code ascii d'un caratère sous forme d'entier en base de 10.Citation:
viveleschacahuetes
v ascii=0
8O
salut mabu et doommick31.
d'aprés les teste que j'ai pu faire.
si on utilise ton exemple
je prend name = "0123456789";Code:
1
2adr = name + 3;
donc atoi retourne : 3456789; car bien sur il va lire les caractere jusqua '\0'
et non pas 3 comme le veux (si j'ai bien compris) doommick31.
donc j'ai pensser tout simplement a faire
donc a voir si c'est ca que tu recherche doommick31.Code:
1
2
3
4
5
6
7
8
9 char name[] = "123456789"; char car[2]; // tableau de 2 "moncaractaire","\O" for(int j=0; j< 9; j++) { car[0] = name[j]; // je copie le caractaire dans ce tableau atoi(car); }
il y a peu etre une plus belle facon de faire.
Tu as même tout manqué:
- La fonction atoi() ne retourne pas le code ASCII d'un caractère: Elle convertit une chaîne en nombre entier (exemple: "10" en 10).
- En C, un caractère est son code ASCII (sur une plate-forme où on utilise l'ASCII, bien sûr. Ce n'est pas le cas sur une plate-forme EBCDIC).
J'ai pas testé le code mais je pense que cela devrait fonctionner.
Le code doit normalement afficher le caractere et sa valeur ASCII.
Code:
1
2
3
4
5
6
7 char name[] = "viveleschacahuetes"; char * stTemp; int ascii = 0; for(int j=0; j< 18; j++) { printf("La lettre %c est egal a %d en ASCII", name[j], name[j]); }
atoi permet de transformer une chaine de caractère base 10 en nombre.
Si tu veut afficher le code d'un caractère, le plus simple est d'utiliser %d dans printf :
Code:
1
2
3
4
5
6
7
8 char name[] = "viveleschacahuetes"; size_t size = sizeof(name); size_t j; for(j=0; j < size; j++) { char c = name[j]; printf("%c : %d\n", c, c); }
Je fatigue grave vous avez raison,
du coup j'ai juste besoin de faire pour avoir mon code ascii sous forme de int
voila c'est tout merci à tous:ccool:Citation:
int a;
char name[]="blague de toto";
a=name[j];