The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Un programme pour tracer l'exécution d'un autre programme jiten_hegde High Level Programming 3 08-19-2008 06:26 AM
strtok équivalent en perl JISHA De programmation et de script Shell 1 05-06-2008 04:38 AM
Regardign strtok () pour diriger la sortie 2-D string array SankarV High Level Programming 3 04-28-2008 10:48 AM
Strtok fonction .... Tanvirk Linux 3 01-24-2008 10:16 AM
mieux que strtok? annie High Level Programming 7 10-05-2005 03:01 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 10-04-2008
sathishkmrv sathishkmrv is offline
Registered User
  
 

Join Date: Sep 2007
Messages: 6
Comment utiliser strtok deux fois dans le même programme?

Code:
       string str1(" 1 2 3 4 512543 ");
                 string str2;
                 if(str2.empty())
                        str2=str1;
                cout << "str2:" <<str2 <<endl;
                p1=strtok((char *)str1.c_str()," ");
                while(p1)
                {
                        v1.push_back(atoi(p1));
                cout << "val of p1 " << p1 << endl;
                 p1=strtok(NULL," ");
                }
                cout << "size of v1 " << v1.size() <<endl;
                p2=strtok((char *)str2.c_str()," ");
                cout << "str2:" <<str2 <<endl;
                while(p2)
                {
                        v2.push_back(atoi(p2));
                        cout << "val of p2 " << p2 <<endl;
                        p2=strtok(NULL," ");
                }

                cout << "size of v2" << v2.size() <<endl;
Je reçois la suite o / p.

Code:
str2: 1 2 3 4 512543 
val of p1 1
val of p1 2
val of p1 3
val of p1 4
val of p1 512543
size of v1 5
str2: 1234512543
val of p2 1
after tok p2  
size of v21
Je tiens également à str2 SEGMENTEE. Mais strtok NULL après avoir atteint une fois qu'il revient à chaque fois que le pointeur NULL quand il est accessible à l'aide NULL.

Comment puis-je tokenizer str2 maintenant?

Merci
  #2 (permalink)  
Old 10-04-2008
redoutable redoubtable is offline
Registered User
  
 

Date d'inscription: août 2008
Lieu: Portugal
Messages: 242
Je ne comprends pas la nécessité d'utiliser strtok () pour votre problème. Quoi qu'il en soit, la réponse est juste dans tout le manuel pour strtok (3):
Citation:
BUGS
Évitez d'utiliser ces fonctions. Si vous ne les utiliser, note que:

Ces fonctions de modifier leur premier argument.

Ces fonctions ne peuvent pas être utilisés sur les chaînes de caractères constants.

L'identité de la délimitation de caractère est perdue.

Le strtok () utilise un buffer statique lors de l'analyse, ce n'est pas le fil de sécurité. Utilisez strtok_r () si cette question est importante pour vous.
Pour rendre votre code de travail, on peut tromper le compilateur de cette façon:
Code:
// ...
       string str1(" 1 2 3 4 512543 ");
                 string str2;
                 if(str2.empty())
                 {
                        str2=str1;
                        str2.insert(0, ""); // now, you tell me why this apparently solves your problem!
                 }
                cout << "str2:" <<str2 <<endl;
                p1=strtok((char *)str1.c_str()," ");
// ...
  #3 (permalink)  
Old 10-04-2008
sathishkmrv sathishkmrv is offline
Registered User
  
 

Join Date: Sep 2007
Messages: 6
Comment utiliser strtok deux fois dans le même programme?

Oui. Il a travaillé!
Mais comment l'insertion de
Code:
str2.insert(0, "");
résolu le problème?
Le manuel suggère également qu'il n'est pas conseillé d'utiliser.
  #4 (permalink)  
Old 10-07-2008
Saurabh78 Saurabh78 is offline
Registered User
  
 

Date d'inscription: juin 2004
Messages: 40
une meilleure utilisation strtok_r
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 03:33 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0