PDA

Visualizza la versione completa : [C++] Dividere una variabile in due variabili (split)


sidius
10-07-2012, 12:05
ciao a tutti,

ho un problema, credo molto semplice ma non riesco a risolverlo.
in pratica ho una variabile che contiene la scritta : "username:password"
e devo dividere la variabile in altre due variabili, ua con il contenuto di username e l'altra di password.
ho scritto questo codice ma l'output non è giusto.



#include <iostream>
#include <fstream>
using namespace std;


int main(int argc, char *argv[]){
int o;
char tutto[256] = "username:passsword";
char us[256];
char ps[256];

for(o = 0; tutto[o] != ':'; o++){
us[o] = tutto[o];
}
for(o = o+1;tutto[o] != '\0';o++){
ps[o] = tutto[o];
}
cout << us << " " << ps;
cout << "\nPremi un tasto per uscire.";
getchar();
return 0;
}

oregon
10-07-2012, 12:14
Molto semplicemente, usando le stringhe del C++ (dato che usi C++)



#include <iostream>
#include <string>

using namespace std;

int main()
{
string tutto, us, ps;

tutto = "username:passsword";

size_t ep1 = tutto.find_first_of(":");
us = tutto.substr(0, ep1);
ps = tutto.substr(ep1 + 1);

cout << us << endl;
cout << ps << endl;

return 0;
}

sidius
10-07-2012, 12:18
grazie mille!

sidius
10-07-2012, 20:01
approfitto di questo topic per fare un'altra domanda:

come faccio a scrivere del testo su un file lasciando anche il testo che c'era prima...

esempio:

file.txt prima:

ciao
come

file.txt dopo:

ciao
come
stai

in pratica vorrei aggiungere al file del testo lasciando invariato il testo che c'era prima.

oregon
10-07-2012, 20:22
Apri il file in append

P.S. In genere non si usa un thread per più problemi ... se ne apre uno nuovo.

Scara95
10-07-2012, 20:23
Qui. (http://www.cplusplus.com/reference/iostream/fstream/open/)
Comunque per ogni problema prima si cerca su Google e poi, casomai, si apre un nuovo thread.

oregon
10-07-2012, 20:25
Originariamente inviato da Scara95
prima si cerca su Google

Concordo ... considerando che sono questioni molto semplici e che, di conseguenza, internet è piena di risposte, fai prima a cercare (e si impara di più) ...

sidius
10-07-2012, 21:22
ok gragie, farò come dite

Loading