Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

strtok string;

- - - - -
  • Please log in to reply
4 replies to this topic

#1
stefanutz13

stefanutz13

    Member

  • Grup: Members
  • Posts: 742
  • Înscris: 04.12.2011
Salut.Vreau sa desfac in tokens un sir de caractere.Am urmatoarul program.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char str[30] = "mare frig rosu";
char s[10]=" ,.-;:";
//cin>>str;
char * pch;
cout<<str<<endl;
pch = strtok (str,s);
while (pch != NULL)
{
	 cout<<pch<<endl;
	 pch = strtok (NULL,s);
}
return 0;
}

care merge perfect ,  si imi afiseaza
mare
frig
rosu


Dar daca citesc sirul , adica am asa:
char str[30];
char s[10]=" ,.-;:";
cin>>str;
char * pch;
cout<<str<<endl;
pch = strtok (str,s);
while (pch != NULL)
{
	 cout<<pch<<endl;
	 pch = strtok (NULL,s);
}

imi afiseaza:
mare
mare


Nu inteleg , am luat si cu debug si nu-mi pica fisa.Multam fain!

Edited by stefanutz13, 26 May 2015 - 20:56.


#2
cd9

cd9

    Junior Member

  • Grup: Members
  • Posts: 195
  • Înscris: 04.04.2015
Ai alternative mai bune în c++ decât `strtok`.

#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>

int main()
{
	std::string toSplit = "mare mar rosu";
	std::vector<std::string> tokens;

	boost::split(tokens, toSplit, boost::is_any_of(" "));

	for(auto const& token : tokens)
	{
		std::cout << token << std::endl;
	}

	return 0;
}


Vezi mai multe aici.

De asemenea, asta:
#include <string.h>

ar trebui inlocuita cu asta
#include <cstring>


Edited by cd9, 27 May 2015 - 00:02.


#3
nightmare392

nightmare392

    Active Member

  • Grup: Members
  • Posts: 1,500
  • Înscris: 20.09.2007

View Poststefanutz13, on 26 mai 2015 - 20:56, said:

Nu inteleg , am luat si cu debug si nu-mi pica fisa.Multam fain!
cin>>str
iti citeste pana la spatiu. Foloseste cin.getline()

Edited by nightmare392, 27 May 2015 - 20:44.


#4
stefanutz13

stefanutz13

    Member

  • Grup: Members
  • Posts: 742
  • Înscris: 04.12.2011
@nightmare , mi-am dat seama dupa.Ms oricum.Have a nice banana day :)))

#5
TS030

TS030

    Guru Member

  • Grup: Senior Members
  • Posts: 15,193
  • Înscris: 25.06.2012
strtok insereaza terminatori in str, si nu se mai recomanda folosirea sa.

Edited by TS030, 28 May 2015 - 11:58.


Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate