Ho questa stringa:
prova="p,r,o,v,a";
come faccio in c++, analogamente all'explode di php.., ad ottenere il relativo...
arraydiprova=[0]=p[1]=r[2]=o[3]=v[4]=a ???
THANKSSS
![]()
Ho questa stringa:
prova="p,r,o,v,a";
come faccio in c++, analogamente all'explode di php.., ad ottenere il relativo...
arraydiprova=[0]=p[1]=r[2]=o[3]=v[4]=a ???
THANKSSS
![]()
Ma scusa, prima mi hai fatto fare il codice che unisce i valori con le virgole, e adesso chiedi di separarle?
E' molto piu' sensato utilizzare lo stesso codice che ti avevo suggerito per inserire i valori singoli nell'array !
No MP tecnici (non rispondo nemmeno!), usa il forum.
Credo ci sia una considerazione in + da fare al riguardo...Originariamente inviato da oregon
Ma scusa, prima mi hai fatto fare il codice che unisce i valori con le virgole, e adesso chiedi di separarle?
E' molto piu' sensato utilizzare lo stesso codice che ti avevo suggerito per inserire i valori singoli nell'array !
Ovvero se inserisco gli elementi già separati nell'array... dopo non so come dirgli al programma di confrontare solo 3 o 5 elementi alla volta...
cerco di spiegarmi meglio...
se ho
x file1
1,2,3
1,2,4
1,2,5
1,2,6
1,2,7
1,2,8
array1=[0]=1[2]=2[3]=3[4]=1[5]=2[6]=4 ecc...
x file 2
58,22,47,49,69;
18,77,33,62,19;
68,65,41,28,67;
76,55,48,85,71;
70,2,20,85,75;
82,81,16,52,77;
51,65,6,29,81;
array2=[0]=58[2]=22[3]=47[4]=49[5]=69[6]=18 ecc...
come faccio a dirgli nel confronto successivo
verifica in questo modo le eventuali occorrenze in comune tra array1 e array2 prendendo 3 a 3 per array1 e 5 a 5 per array2?
Mentre se facico la stessa cosa per ogni elemento stringa dei rispettivi array la vedo + semplice... ma al 99% mi sto sbagliando...![]()
Spesso purtroppo scelgo per le varie soluzioni le vie + lunghe e complicate
quindi se hai una soluzione molto + breve per questo problema che mi trovo ad affrontare adesso e che ho cercato di spiegare anche qui... [PUNTO (3)] non posso che accettarla con estrema gioia!![]()
GRAZIE ancora
![]()
Non capisco quello che hai scritto ma so che, per quanto riguarda file2, ovvero
58,22,47,49,69;
18,77,33,62,19;
68,65,41,28,67;
76,55,48,85,71;
70,2,20,85,75;
82,81,16,52,77;
51,65,6,29,81;
se vuoi ottenere array2 con i valori separati, lo devi fare modificando il codice che ti ho scritto, ovvero quello che scrive file2. Mentre lo scrivi, inserisci i dati nel vettore.
E così array2 ce l'hai.
Anch'io sono convinto che stai seguendo una strada mooolto lunga ... secondo me, tutto il problema andrebbe rivisto, sin dalle basi ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Come si effettua la scomposizione di una stringa in elementi di un array prendendo come elemento separatore un carattere scelto appartenente alla stringa (nel mio caso la virgola...)???Originariamente inviato da oregon
Ma scusa, prima mi hai fatto fare il codice che unisce i valori con le virgole, e adesso chiedi di separarle?
E' molto piu' sensato utilizzare lo stesso codice che ti avevo suggerito per inserire i valori singoli nell'array !![]()
GRAZIE!![]()
Al riguardo... ho cercato e ricercato ma nulla ho finora trovato...![]()
![]()
![]()
Scusami, se ignoro la tua domanda, visto che tu hai ignorato la mia risposta ...![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
Scusa ma non so come ho fatto a ignorarla..
Diciamo che non so quale sia e come metterla in pratica
Ti chiedo maggiore pazienza e meno ermetismo verso questo (io) neofita c++ alle primissime armi...![]()
Grazie comunque
ps: Ho cercato e ricercato nel frattempo online l'argomento scomporre una stringa... ma nulla... non mi dire che in c++ non esiste qualcosa di analogo a string.explode (di php) perchè non ci credo...![]()
fare il confronto tra stringhe direttamente...
Dovrei allo scopo riuscire a ottimizzare questo codice che trova di per sè una parola intera tra quelle digitate... ma non saprei da che parte iniziare...![]()
![]()
/*
Programma che, date in input due stringhe, controlla quante volte la seconda è contenuta nella prima.
*/
#include <stdio.h>
#include <string.h> //per la funzione strlen()
#define MAX 100 //numero massimo di caratteri per le due stringhe
#include <iostream>
//#include <fstream.h>
int main (int argc, char *argv[])
{
int n=0; //numero di parole trovate
char stringa[MAX],parola[MAX];
printf("Inserisci la stringa (max %d caratteri): ", MAX);
gets(stringa);
printf("Inserisci la parola da ricercare (max %d caratteri): ", MAX);
gets(parola);
int i=0; //i scorre le lettere della parola
for (int j=0; j<strlen(stringa); j++){ //j scorre le lettere della frase
if (stringa[j]==parola[i]){ //se le due lettere sono uguali...
if (i!=0 || (i==0 && (stringa[j-1]==' ' || j==0))){
/*se si sta controllando la prima lettera della parola, verifica che nella
stringa ci sia uno spazio prima della lettera da confrontare o che essa sia
la prima lettera della stringa*/
i++; //...incrementa i
if (i==strlen(parola)){ //quando si arriva alla fine della parola...
if (stringa[j+1]==' ' || stringa[j+1]=='\0'){ /*...controlla che nella stringa il prossimo carattere sia uno spazio o il carattere terminatore*/
n++; //in caso affermativo incrementa il numero di parole trovate
i=0; //e azzera i
}
}
}
}
}
if(!n) {
printf("Non ho trovato la parola inserita!");
printf ("\n\n\n");
printf ("Premi un tasto x chiudere");
gets(parola);
return 0;
}
else {
printf("Ho trovato %d volte la parola inserita", n);
printf ("\n\n\n");
printf ("Premi un tasto x chiudere");
gets(parola);
return 0;
}
}
A me basterebbe riadattarlo... al fine di avere ad esempio un confronto simile...
stringa1 = "1,2,3";
stringa2 ="12,1,34,56,90";
risposta: 1 occorrenza trovata! -> 1
Qualcuno/a è in grado di aiutarmi in tal senso?
GRAZIE
![]()
Non l'hai letta ...Originariamente inviato da freetom
Scusa ma non so come ho fatto a ignorarla..
Te la ripeto. Devi partire dal codice che ti ho mostrato con cui scrivi il file "estrazioni2" (che poi, sei sicuro a che serva ?) e riempire l'array a partire dai dati disponibili nel ciclo.Diciamo che non so quale sia e come metterla in pratica
La pazienza è stata massima, te lo assicuro, ma non puoi pretendere che ti si scriva tutto il codice. Il fatto di essere alle prime armi non è una giustificazione, non vuol dire che gli altri debbano fare il lavoro per te ... a questo punto scrivi nel forum "Offro lavoro" ...Ti chiedo maggiore pazienza e meno ermetismo verso questo (io) neofita c++ alle primissime armi...![]()
Tu stai cercando di ottenere un codice C/C++ senza sapere alcunchè di C/C++ e, a differenza di altri che iniziano, non studi il linguaggio ma cerchi di ottenere "pezzi" da altri con cui fare un "collage" ... che alla fine non funziona e l'unico modo e' scrivere tutto il codice corretto al posto tuo.
Non e' un comportamento che condivido.
No MP tecnici (non rispondo nemmeno!), usa il forum.