Oppure

Loading
20/08/09 12:53
tommyprojects
Ad esempio...

Ho una stringa "pippo"

string "pippo";

come posso ottenere un:

vector<string>caratteridipippo;

in modo che contenga 5 elementi:
p,i,p,p,o


? 8-|

Graz

:)
aaa
20/08/09 12:56
manvb.net
Fai un ciclo in cui scorri tutti i caratteri della stringa e poi aggiungi a caratteridipippo ogni elemento ottenuto.
aaa
20/08/09 17:00
theprogrammer
Se sono semplici caratteri, e' un fatto, se sono numeri (come penso da quello che leggo su html.it ...) e' un'altra storia ...

E' meglio essere chiaro sin dall'inizio con la domanda ...
aaa
20/08/09 17:13
tommyprojects
Postato originariamente da manvb.net:

Fai un ciclo in cui scorri tutti i caratteri della stringa e poi aggiungi a caratteridipippo ogni elemento ottenuto.


La seconda parte la so fare ma per la prima (..Fai un ciclo in cui scorri tutti i caratteri della stringa ..) qualche aiutino??? 8-|

THANKS :D
aaa
20/08/09 19:48
steve__92
l'unico modo che mi viene in mente è appoggiandomi a un array di char (senza usare string)

ti faccio un esempio:

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

int main()
{
	char a[30]; // al posto di usare string uso un array di char
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='l'unico modo che mi viene in mente è appoggiandomi a un array di char (senza usare string)


ti faccio un esempio:

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

int main()
{
	char a[30]; // al posto di usare string uso un array di char
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='{parsed_message}'; x++)	v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore
//	stampo tutte le lettere (per far vedere che ha funzionato)
	cout << endl << endl;
	for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl;
	system("pause>nul");	
return 0;
}
'; x++) v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore // stampo tutte le lettere (per far vedere che ha funzionato) cout << endl << endl; for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl; system("pause>nul"); return 0; }
Ultima modifica effettuata da steve__92 20/08/09 19:49
aaa
20/08/09 22:14
manvb.net
Postato originariamente da steve__92:

l'unico modo che mi viene in mente è appoggiandomi a un array di char (senza usare string)

ti faccio un esempio:

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

int main()
{
	char a[30]; // al posto di usare string uso un array di char
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='
Postato originariamente da steve__92:

l'unico modo che mi viene in mente è appoggiandomi a un array di char (senza usare string)

ti faccio un esempio:

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

int main()
{
	char a[30]; // al posto di usare string uso un array di char
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='{parsed_message}'; x++)	v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore
//	stampo tutte le lettere (per far vedere che ha funzionato)
	cout << endl << endl;
	for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl;
	system("pause>nul");	
return 0;
}


Più che array di caratteri non sarebbe meglio utilizzare un string(come richiesta dallo starter del topic)?'; x++) v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore // stampo tutte le lettere (per far vedere che ha funzionato) cout << endl << endl; for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl; system("pause>nul"); return 0; }


Più che array di caratteri non sarebbe meglio utilizzare un string(come richiesta dallo starter del topic)?
aaa
20/08/09 22:29
steve__92
Postato originariamente da manvb.net:
Più che array di caratteri non sarebbe meglio utilizzare un string(come richiesta dallo starter del topic)?


ottimo! non sapevo che gli string si potessero trattare come fossero array... grazie per la dritta! mi sarà sicuramente utile in futuro.


il codice di esempio diventa così:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
	string a; // gli string si possono usare come fossero array
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='
Postato originariamente da manvb.net:
Più che array di caratteri non sarebbe meglio utilizzare un string(come richiesta dallo starter del topic)?


ottimo! non sapevo che gli string si potessero trattare come fossero array... grazie per la dritta! mi sarà sicuramente utile in futuro.


il codice di esempio diventa così:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
	string a; // gli string si possono usare come fossero array
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='{parsed_message}'; x++)	v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo '{parsed_message}')
//	stampo tutte le lettere (per far vedere che ha funzionato)
	cout << endl << endl;
	for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl;
	system("pause>nul"); //	<-- da aggiungere se non lo vuoi far partire da prompt e usi windows
	return 0;
}
'; x++) v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo '
Postato originariamente da manvb.net:
Più che array di caratteri non sarebbe meglio utilizzare un string(come richiesta dallo starter del topic)?


ottimo! non sapevo che gli string si potessero trattare come fossero array... grazie per la dritta! mi sarà sicuramente utile in futuro.


il codice di esempio diventa così:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
	string a; // gli string si possono usare come fossero array
	cout << "inserisci una parola: ";
	cin >> a; // metto la parola in input all' array di char se vuoi usare pure gli spazi devi usare cin.getline()
	vector <char> v; // creo un vettore di char
	for(int x = 0; a[x]!='{parsed_message}'; x++)	v.push_back(a[x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo '{parsed_message}')
//	stampo tutte le lettere (per far vedere che ha funzionato)
	cout << endl << endl;
	for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl;
	system("pause>nul"); //	<-- da aggiungere se non lo vuoi far partire da prompt e usi windows
	return 0;
}
') // stampo tutte le lettere (per far vedere che ha funzionato) cout << endl << endl; for(int x=0;x<v.size();x++) cout << "v[" << x << "]" << "\t" << v[x] << endl; system("pause>nul"); // <-- da aggiungere se non lo vuoi far partire da prompt e usi windows return 0; }
Ultima modifica effettuata da steve__92 20/08/09 22:30
aaa
23/08/09 14:35
tommyprojects
scusate il ritardo nella risposta ma ho avuto da fare e mi sono otuto ricollegare solo adesso con una penna adsl dalla campagna :)
dunque per tornare a noi...grazie innanzi tutto per tutti gli apporti e poi... l'ultimo cod funzia alla grande solo che a me servirebbe unificare in un unico elemento (numero) i due elementi separati che ne risultano...

cerco di spiegarmi meglio...

se ho una stringa... 11,12,13,14,15,16,17,18,19,20 l'ultimo cod postato mi crea regolarmente:

vec[0]=1
vec[1]=1
vec[2]=,
vec[3=1
vec[4]=2
vec[5]=,
ecc...

mentre a me servirebbe ottenere:

vec[0]=11
vec[1]=12
ecc...

altrimenit il confronto tra numeri successivo.. mi risulta impossibile...

Grazie comunque e rimango in ascolto...

Io per adesso avrei provato così...

 

   for(int x = 0; vec[z][x]!='scusate il ritardo nella risposta ma ho avuto da fare e mi sono otuto ricollegare solo adesso con una penna adsl dalla campagna :)

dunque per tornare a noi...grazie innanzi tutto per tutti gli apporti e poi... l'ultimo cod funzia alla grande solo che a me servirebbe unificare in un unico elemento (numero) i due elementi separati che ne risultano...

cerco di spiegarmi meglio...

se ho una stringa... 11,12,13,14,15,16,17,18,19,20 l'ultimo cod postato mi crea regolarmente:

vec[0]=1
vec[1]=1
vec[2]=,
vec[3=1
vec[4]=2
vec[5]=,
ecc...

mentre a me servirebbe ottenere:

vec[0]=11
vec[1]=12
ecc...

altrimenit il confronto tra numeri successivo.. mi risulta impossibile...

Grazie comunque e rimango in ascolto...

Io per adesso avrei provato così...

 

   for(int x = 0; vec[z][x]!='{parsed_message}'; x++)    vv.push_back(vec[z][x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo '{parsed_message}') 
//    stampo tutte le lettere (per far vedere che ha funzionato) 
    cout << endl << endl; 
    for(int x=0;x<vv.size();x++) cout << "v[" << x << "]" << "\t" << vv[x] << endl; 
    system("pause>nul"); //    <-- da aggiungere se non lo vuoi far partire da prompt e usi windows 
    //return 0; 
    
  //prova unione caratteri 2 a 2 ...
char elem1[50], elem2[50];
string una=vec[z][x];
string due=vec[z+1][x];
strcpy(elem1, una);
strcpy(elem2, due);
str uniti = strcat(elem1, elem2);

cout << "Si sono uniti?\n";
cout << uniti;
cout << "\n";



ma mi da sempre questo errore:


138 C:\Documents and Settings\tommy\versione32-d.cpp name lookup of `x' changed for new ISO `for' scoping :om:



:) '; x++) vv.push_back(vec[z][x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo 'scusate il ritardo nella risposta ma ho avuto da fare e mi sono otuto ricollegare solo adesso con una penna adsl dalla campagna :)
dunque per tornare a noi...grazie innanzi tutto per tutti gli apporti e poi... l'ultimo cod funzia alla grande solo che a me servirebbe unificare in un unico elemento (numero) i due elementi separati che ne risultano...

cerco di spiegarmi meglio...

se ho una stringa... 11,12,13,14,15,16,17,18,19,20 l'ultimo cod postato mi crea regolarmente:

vec[0]=1
vec[1]=1
vec[2]=,
vec[3=1
vec[4]=2
vec[5]=,
ecc...

mentre a me servirebbe ottenere:

vec[0]=11
vec[1]=12
ecc...

altrimenit il confronto tra numeri successivo.. mi risulta impossibile...

Grazie comunque e rimango in ascolto...

Io per adesso avrei provato così...

 

   for(int x = 0; vec[z][x]!='{parsed_message}'; x++)    vv.push_back(vec[z][x]); // continuo ad aggiungere le lettere dell' array al vettore (finche trovo '{parsed_message}') 
//    stampo tutte le lettere (per far vedere che ha funzionato) 
    cout << endl << endl; 
    for(int x=0;x<vv.size();x++) cout << "v[" << x << "]" << "\t" << vv[x] << endl; 
    system("pause>nul"); //    <-- da aggiungere se non lo vuoi far partire da prompt e usi windows 
    //return 0; 
    
  //prova unione caratteri 2 a 2 ...
char elem1[50], elem2[50];
string una=vec[z][x];
string due=vec[z+1][x];
strcpy(elem1, una);
strcpy(elem2, due);
str uniti = strcat(elem1, elem2);

cout << "Si sono uniti?\n";
cout << uniti;
cout << "\n";



ma mi da sempre questo errore:


138 C:\Documents and Settings\tommy\versione32-d.cpp name lookup of `x' changed for new ISO `for' scoping :om:



:) ') // stampo tutte le lettere (per far vedere che ha funzionato) cout << endl << endl; for(int x=0;x<vv.size();x++) cout << "v[" << x << "]" << "\t" << vv[x] << endl; system("pause>nul"); // <-- da aggiungere se non lo vuoi far partire da prompt e usi windows //return 0; //prova unione caratteri 2 a 2 ... char elem1[50], elem2[50]; string una=vec[z][x]; string due=vec[z+1][x]; strcpy(elem1, una); strcpy(elem2, due); str uniti = strcat(elem1, elem2); cout << "Si sono uniti?\n"; cout << uniti; cout << "\n";


ma mi da sempre questo errore:


138 C:\Documents and Settings\tommy\versione32-d.cpp name lookup of `x' changed for new ISO `for' scoping :om:



:)
Ultima modifica effettuata da tommyprojects 23/08/09 15:11
aaa