Bonjour,
* il me semble * avoir vu qu'on peut remplacer par trois points une déclaration de tableau, c.à.d. quand sa teneur n'est pas connue d'avance ?
Et j'arrive plus à retrouver cette déclaration où on utilise ces trois points.
Version imprimable
Bonjour,
* il me semble * avoir vu qu'on peut remplacer par trois points une déclaration de tableau, c.à.d. quand sa teneur n'est pas connue d'avance ?
Et j'arrive plus à retrouver cette déclaration où on utilise ces trois points.
Utilise la STL tel que vector ou list
http://cpp.developpez.com/faq/cpp/?page=STL
Les trois points sont uniquement pour les paramètres de fonction : Voir printf(), execl() (POSIX)...
Ou alors tu te trompes de langage, les trois points pour remplacer le [] étant un sucre syntaxique autorisé en Java.
En C et en C++ on ne peut s'en servir que pour dire qu'une fonction pourra prendre un nombre arbitraire d'arguments. Ce sont des fonctions à ellipse :)
Toutefois, on pourra avoir ça dans les templates bientôt grâce aux variadic templates.
Les trois points servent aussi dans les exceptions.
Ils signifient que le bloc catch attrapera toute exception lancée.
Exemple:
Code:
2
3
4
5
6
7
8
9
10
11
12
13
Déjà merci pour les réponses... j'oublie les (...) mais je retiens les conseils ;)
J'ai commencé avec les 'string' avant de me lancer dans les 'vector' en deuxième.
Voilà que j'arrive pas à afficher mon bufstr final :
str est un 'string str'.Code:
2
3
4
5
6
7
8
9
10
C'est en fait inverser le string. Avec cependant un petit bémol: les 2 premiers [] de bufstr sont vides.
Voilà un exemple qui illustre à la perfection pourquoi il est recommandé d'utiliser les std::string en C++ au lieu des char*.
Tout simplement car l'utilisation des char* et des pointeurs est difficile, et que l'on se plante facilement.
Par exemple ton algo est faux :aie:
Si l'on inverse la chaine "T,R,U,C,\0" alors elle devient "\0, C, U, R, T". Le caractère de fin de chaine se retrouve au début et donc il ne s'affiche rien. (ce qui a l'air évident après coup, mais mine de rien j'ai du utiliser un debuggeur pour trouver l'erreur :oops: )
Alors qu'il est possible avec la STL d'avoir une écriture bien plus simple, plus courte et surtout qui permet de ne pas avoir à mettre les mains dans le camboui :
Code:
2
3
4
5
6
7
8
9
10
Merci pour le tuyau du '\0' Arzar, en effet il était copié en premier et le string ne pouvait donc pas être affiché.
Par contre le reverse(....) ne marche pas .
ss n'est pas inversé !Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Output:
Mais ceci marche:Citation:
Dec nbr to convert to bin : 4852
01001011110100 = output from the stack with printf
1001011110100 = is ss reversed ?
Et ceci marche malgré un premier '0' qui n'est pas affiché:Code:string inverse(ss.rbegin(), ss.rend());
Output:Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Citation:
Dec nbr to convert to bin : 4852
01001011110100 = output from the stack with printf
str to reverse = 1001011110100
size = 14 capacity = 16
bufstr = 0010111101001