Mi értelme van a string nek c++ ban ha egy char típusú tömbbe is tehetem a szöveget?
Egy string típusban tárolt mondatot hogyan szedhetek szét szavakra.
char típusban az strtok val de ha stringről van szó akkor hogy?
#include <iostream>
#include <string.h>
using std::cout ;
using std::endl ;
using std::string ;
int main ()
{
string str = "kakakak -vadmalac% fenyofa " ;
char *x = strtok((char*)&str, " %-") ;
while(x != '\0')
{
cout << "x" << endl ;
x = strtok(0, " %-") ;
}
return int(0) ;
}
Próbáltam így de nem jó.
"Mi értelme van a string nek c++ ban ha egy char típusú tömbbe is tehetem a szöveget?"
A string az egy külön típus, megkönnyítve a programozók dolgát, stigek összefűzése, másolása stb. másolni egyszerűen a "=" -el lehet, összefűzni a "+"-al stb.
Itt van pl a char str[] = "alma"; ezt nem írhatod hogy str="szilva"; az str az egy tömb, körülményesebb használni ... stb, mígy std::string-el minden további nélkül lehet, helyetted foglalja le a szükséges memóriát, meg fel is szabadítja ...
Ugyanakkor a kompatibilitás miatt ott van a C-s string, ami nem is külön típus igazábol csak pointer ill. tömb.
c_str() metódus van a kompatibilitás miatt.
Dehát: char *x = strtok((char*)str.c_str(), " %-");
A feldolgozandó string-et érdemes lemásolni ha utána fel akarod még használni mert az strtok felülírja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!