Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
sfat achizitie telefon pana in 20...

Stoc Smart CAM TV

Ce corzi de chitara sa cumpar?

Galaxy A54 compass defect?
 Cum conectez un switch WIFI la 60...

Cumparare AC Gree [Buget maxim 30...

Telekom

Ce e aratarea asta ?
 Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...

La multi ani @Klasse!
 La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...

Campanii mincinoase Carrefour
 

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,504
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

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