|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
[c] scomporre una stringa
ciao raga
avrei una domanda da farvi ho una stringa di questo tipo parola1#parola2 cioè una stringa formatada due parole divise da un cancelletto devo scomporre le due parole e visualizzarle una sotto l'altra a video eliminando il cancelletto ovvero esempio cane#gatto output cane gatto che voi sappiate esiste una funzione che elimina una determinata lettera da una stringa ? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
in C no, ma puoi risolvere piuttosto semplicemente utilizzando la strchr() in modo da trovare il carattere in questione.
Per esempio, supponendo che p = "Cane#Gatto"; Codice:
char *q = strchr (p, '#');
if (q)
{
*q++ = '\0';
printf ("Separatore trovato. Prima parola: %s Seconda parola: %s\n", p, q);
}
else
{
printf ("Separatore non trovato\n");
}
__________________
In God we trust; all others bring data |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Dannati bot... vabbe'. Prova a dare uno sguardo anche a strtok().
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
Codice:
#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "gatto#cane";
char* p;
printf("Stringa completa: \n %s\nStringa spezzata:\n",s);
p = strtok(s, "#");
while (p != NULL)
{
printf("%s\n", p);
p = strtok(NULL, "#");
}
return 0;
}
cioè usare due variabili stringa 1 e stringa2 alle quali verranno assegnati rispettivamente cane e gatto come posso fare? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
Codice:
/* Esempio con un carattere separatore */
#include <stdio.h>
#include <string.h>
int main()
{
char *info,*file;
char s[] = "cane#gatto";
char* p;
printf("Stringa completa: \n %s\nStringa spezzata:\n",s);
p = strtok(s, "#");
while (p != NULL)
{
sprintf(info ,"%s", p);
p = strtok(NULL, "#");
sprintf(file ,"%s", p);
p = strtok(NULL, "#");
}
printf("info =%s\n",info);
printf("FILE = %s\n",file);
return 0;
}
dove sbaglio? |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jan 2005
Città: Torino
Messaggi: 144
|
Anticipo che non conosco l'utilizzo di sprinf ma il tuo programma ha almeno due errori: hai aggiunto un ciclo e poi non lo usi, non ha senso usare nel ciclo per due volte p = strtok; secondo, tu memorizzi, penso, l'indirizzo della variabile p in info e in file, non il contenuto. Se vuoi memorizzare il contenuto fai info = strdup(p).
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Il problema è che info e file non sono mai inizializzate, usa strdup().
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:51.



















