Problema con stringhe in c

di il
18 risposte

Problema con stringhe in c

Ciao,ho un problema con un programma in c facilissimo,

data una frase immessa da terminale (ad es. ciao come va) stampi la stessa frase in output, il problema è che la scanf della stringa si interrompe allo spazio dopo il ciao,sapreste dirmi come mettere tutto la frase all'interno della stringa?

18 Risposte

  • Re: Problema con stringhe in c

    Ma neanche una ricerca con google vuoi fare?
  • Re: Problema con stringhe in c

    oregon ha scritto:


    Ma neanche una ricerca con google vuoi fare?
    Ho cercato su google ma dice di usare il gets,il quale però non è sicuro dato che può creare problemi
  • Re: Problema con stringhe in c

    oregon ha scritto:


    Ma neanche una ricerca con google vuoi fare?
    Se poi è cosi facile potresti scriverlo qua sotto al posto di lamentarti
  • Re: Problema con stringhe in c

    Hai trovato quella indicazione sulla sicurezza della gets? Cerca cosa viene consigliato al suo posto.

    Mi "lamento" (come dici tu) perché non hai la voglia di fare una ricerca e chiedi la pappa pronta.
  • Re: Problema con stringhe in c

    oregon ha scritto:


    Hai trovato quella indicazione sulla sicurezza della gets? Cerca cosa viene consigliato al suo posto.

    Mi "lamento" (come dici tu) perché non hai la voglia di fare una ricerca e chiedi la pappa pronta.
    Io sono libero di chiedere quello che voglio su un forum,se non ti va bene basta ignorarmi.
  • Re: Problema con stringhe in c

    Sicuramente ... infatti ti ho risposto su cosa fare. Il forum serve a dare risposte. Non le risposte che pretendi tu però.
  • Re: Problema con stringhe in c

    Dai un'occhiata alle caratteristiche della funzione fgets(), potrebbe fare al caso tuo.
  • Re: Problema con stringhe in c

    AldoBaldo ha scritto:


    Dai un'occhiata alle caratteristiche della funzione fgets(), potrebbe fare al caso tuo.
    Innanzitutto grazie,però io sapevo che la funzione gets non è "sicura" perchè rischia di creare molti overflow,non esiste qualche funzione più sicura?
  • Re: Problema con stringhe in c

    oregon ha scritto:


    Sicuramente ... infatti ti ho risposto su cosa fare. Il forum serve a dare risposte. Non le risposte che pretendi tu però.
    Dare consigli da ritardato non penso che sia una cosa da fare in questo forum...
  • Re: Problema con stringhe in c

    Leggi bene i consigli. fgets é la stessa cosa di gets?
  • Re: Problema con stringhe in c

    Leggi bene e cerca la documentazione di quello che ti viene suggerito. Studiala e vedi le differenze
  • Re: Problema con stringhe in c

    7iFF ha scritto:


    Innanzitutto grazie,però io sapevo che la funzione gets non è "sicura" perchè rischia di creare molti overflow,non esiste qualche funzione più sicura?
    fgets() è stata predisposta proprio avendo in mente la necessità di salvaguardarsi contro gli sfondamenti del buffer. Se guardi bene, fgets() appare come gets() ma ha quella "f" davanti, che fa riferimento all'uso di uno stream. Lo stream può rappresentare un file, ma anche lo stream stdin, che riguarda proprio i dati inseriti in console.

    Leggi qui, vedrai che ti si accende la lampadina: http://digilander.libero.it/uzappi/C/librerie/funzioni/fgets.html

    Occhio al modo in cui viene trattato il limite imposto da "size", perché se l'utente inserisce più di (size-1) caratteri il '\n' NON è in coda alla stringa che ricevi e nello stdin restano dei caratteri, per così dire, "pendenti" che potrebbero condizionare le tue successive interrogazioni allo stdin stesso. Ti conviene fare un po' di prove inserendo stringhe brevi su un piccolo buffer e osservare bene cosa succede usando un debugger, se no ti si spacca il cranio per niente e finisci per demoralizzarti.

    P.S. Stai frequentando una scuola? Quale? A che punto sei? Perché se hai quindici anni è un conto, se ne hai ventidue è un altro conto.
  • Re: Problema con stringhe in c

    Puoi anche utilizzare una scanset
  • Re: Problema con stringhe in c

    Puoi anche utilizzare una scanset
    Così ti complichi la vita! Se devi leggere una stringa usi fgets().
    Considerando poi che non si vuole utilizzare gets() perchè "non sicura": se ci si interroga sul significato di tale affermazione si capirà come la scanf() ha potenzialmente gli stessi problemi.
Devi accedere o registrarti per scrivere nel forum
18 risposte