|
albakiara |
stringhe con scanf e puntatori [RISOLTO] |
16-11-2014 12:03 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
stringhe con scanf e puntatori [RISOLTO]
Salve a tutti,
so che sicuramente sarà una cosa banale, ma non ho capito come fare questo:
leggere una stringa di lunghezza non nota con scanf nel main, e passare il puntatore al primo carattere della stringa ad una funzione! Potete scrivermi il codice del main e il prototipo della funzione?
Grazie!
Last edited by Cronovirus on 16-11-2014 at 13:21
|
16-11-2014 12:03 |
|
|
| |
|
Cronovirus |
Re: stringhe con scanf e puntatori |
16-11-2014 12:48 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Re: stringhe con scanf e puntatori
Originally posted by albakiara
Salve a tutti,
so che sicuramente sarà una cosa banale, ma non ho capito come fare questo:
leggere una stringa di lunghezza non nota con scanf nel main, e passare il puntatore al primo carattere della stringa ad una funzione! Potete scrivermi il codice del main e il prototipo della funzione?
Grazie!
Ciao nel testo dell'esercizio dice anche quanto può essere lunga al massimo la stringa?
|
16-11-2014 12:48 |
|
|
| |
|
Cronovirus |
Perchè se non lo chiede puoi farlo così:
... |
16-11-2014 12:54 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Perchè se non lo chiede puoi farlo così:
#include <stdio.h>
#include <stdlib.h>
void func(const char *p){
while(*p!='\0'){
putchar(*p);
p++;
}
}
int main(void){
char *p = malloc(sizeof(char *));
scanf("%s",p);
func(p);
}
|
16-11-2014 12:54 |
|
|
| |
|
albakiara |
Grazie per la risposta! :-D
... |
16-11-2014 13:04 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Grazie per la risposta!
Non è noto niente sulla lunghezza della stringa! io avevo pensato a questo:
printf ("Inserisci stringa:\n");
scanf ("%s", s);
non va bene?
|
16-11-2014 13:04 |
|
|
| |
|
Cronovirus |
Guarda sopra ;) ... |
16-11-2014 13:07 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Guarda sopra
|
16-11-2014 13:07 |
|
|
| |
|
albakiara |
Ho guardato, x questo chiedevo se come ho fatto va ... |
16-11-2014 13:12 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Ho guardato, x questo chiedevo se come ho fatto va bene o no?
|
16-11-2014 13:12 |
|
|
| |
|
Cronovirus |
Si certo XD ... |
16-11-2014 13:13 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Si certo XD
|
16-11-2014 13:13 |
|
|
| |
|
albakiara |
Grazie ho risolto il mio esercizio! In pratica il ... |
16-11-2014 13:17 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Grazie ho risolto il mio esercizio! In pratica il mio errore era non aver allocato lo spazio per char*!
|
16-11-2014 13:17 |
|
|
| |
|
Cronovirus |
Di niente :D ... |
16-11-2014 13:19 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Di niente
|
16-11-2014 13:19 |
|
|
| |
|
albakiara |
in realtà, ci sarebbe un altro piccolo problema, ... |
16-11-2014 13:39 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
in realtà, ci sarebbe un altro piccolo problema, se inserisco una stringa contenente degli spazi, il programma non funziona!
ecco il main:
int main (void) {
char ch;
char* s = malloc (sizeof (char*));
if (s == NULL)
exit (1);
printf ("Inserisci stringa: \n");
scanf ("%s", s);
printf ("Inserisci il carattere da eliminare: \n");
scanf (" %c", &ch);
printf ("%s\n", cancella_ch(s, ch));
return 0;
}
|
16-11-2014 13:39 |
|
|
| |
|
Cronovirus |
E' normale: diverse funzioni di libreria si ferman ... |
16-11-2014 13:55 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
E' normale: diverse funzioni di libreria si fermano quando leggono il carattere 'spazio'! dovresti usare un array di puntatori http://linux.die.net/man/3/scanf, in particolare dice riguardo a %s: "Matches a sequence of non-white-space characters; the next pointer must be a pointer to character array that is long enough to hold the input sequence and the terminating null byte ('\0'), which is added automatically. The input string stops at white space or at the maximum field width, whichever occurs first. "
|
16-11-2014 13:55 |
|
|
| |
|
albakiara |
ah già, grazie :) ... |
16-11-2014 14:03 |
|
|
albakiara |
.illuminato.
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline
Edit | Report | IP: Logged |
ah già, grazie
|
16-11-2014 14:03 |
|
|
| |
|
All times are GMT. The time now is 15:31. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|