Pour un projet utilisant SQLite, j'utilise des char * pouvant contenir des apostrophes. Je souhaiterai doubler celles ci mais je ne vois pas comment faire.
THx ! :wink:
Version imprimable
Pour un projet utilisant SQLite, j'utilise des char * pouvant contenir des apostrophes. Je souhaiterai doubler celles ci mais je ne vois pas comment faire.
THx ! :wink:
Salut,
A mon avis le forum "C" est peut etre plus approprié, vu que tu manipules des char* (et que les char*, c'est mal ;) ), mais je dirais (première idée qui me vient à l'esprit) :
Mais c'est peut etre pas la meilleure solution ..Code:
1
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
29
30
31
32
33 (codé à la volée, donc qui ne compile probablement pas) // chaine de départ char chaine[] = "c'est d'accord"; int len = strlen(chaine); // compter les apostrophes int nbApostrophes=0; for (int i=0; i<len; ++i) if (chaine[i]=='\'') ++nbApostrophes; // allouer une nouvelle chaine de la bonne taille char* pNouvelle = new char[len+nbApostrophes+1]; // la remplir int j=0; for (int i=0; i<len+nbApostrophes; ++i) { // recopier la lettre pNouvelle[j] = chaine[i]; ++j; // si c'est un papostrophe, la doubler if (chaine[i]=='\'') { pNouvelle[j] = '\''; ++j; } } pNouvelle[j] = 0;
Tu pourrais peut etre créer un std::string avec ta chaine en char*, et utiliser un foncteur qui convient pour insérer une apostrophe après chaque apostrophe existante....
Enfi voilà ;)
Merci, je vais essayer de voir avec la deuxième méthode.