Trasformare una stringa

di il
102 risposte

102 Risposte - Pagina 2

  • Re: Trasformare una stringa

    SuperManPC ha scritto:


    Si ma io non ci riesco, puoi farmi vedere come si stampa con un ciclo?
    ad esempio così..
       char stringa[]="ciao";
       int i = 0;
       while(stringa[i] != '\0'){
           printf("%c", stringa[i]);
           i++;
       }
       
    
    Ma non ci credo che il tuo libro non ne parla
  • Re: Trasformare una stringa

    Si ma così so farlo anchio è nel mio caso che non riesco, puoi farmi vedere come si stampa s dalla mia funzione?
  • Re: Trasformare una stringa

    SuperManPC ha scritto:


    Si ma così so farlo anchio è nel mio caso che non riesco, puoi farmi vedere come si stampa s dalla mia funzione?
    Prima fammi capire cosa vorresti fare con quel codice, che io non lo capisco
  • Re: Trasformare una stringa

    Voorei che la funzione escape, nel copiare la stringa t in s, trasformi i caratteri newline e le tabulazioni in sequenze di controllo visibili quali \t e \n.
    Devo farlo usando switch
  • Re: Trasformare una stringa

    SuperManPC ha scritto:


    1 strlen vale la lunghezza della stringa s
    E quindi numericamente quanto vale nella prima iterazione del ciclo for?

    SuperManPC ha scritto:


    2 escape copia t in s sostituendo \n al newline e \t ad ogni tabulazione

    SuperManPC ha scritto:


    Voorei che la funzione escape, nel copiare la stringa t in s, trasformi i caratteri newline e le tabulazioni in sequenze di controllo visibili quali \t e \n.
    Devo farlo usando switch
    Vediamo se ho capito, se
    t = {'a', '\n', 'b', '\t', 'c', '\0'}
    allora
    s = {'a', '\', 'n', 'b', '\', 't', 'c', '\0'}
    giusto?
  • Re: Trasformare una stringa

    La lunghezza vale 20, hai capito però mi sa che hai invertito s con t, è t che viene copiata in s comunque va bene
  • Re: Trasformare una stringa

    SuperManPC ha scritto:


    La lunghezza vale 20, hai capito però mi sa che hai invertito s con t, è t che viene copiata in s comunque va bene
    Per favore, leggiti quello che scrivo piuttosto che fermarti subito al “non conosco strcpy”…

    E soprattutto, cerca e studia le funzioni dello standard. strlen non si comporta come tu dici
  • Re: Trasformare una stringa

    Nippolo ha scritto:


    SuperManPC ha scritto:


    1 strlen vale la lunghezza della stringa s
    E quindi numericamente quanto vale nella prima iterazione del ciclo for?
    Domanda mal posta… non c’è una risposta corretta in quanto si tratta di un undefined behavior
  • Re: Trasformare una stringa

    Strlen non ha sempre lo stesso valore?
  • Re: Trasformare una stringa

    SuperManPC ha scritto:


    Strlen non ha sempre lo stesso valore?
    "Ciao" e "Arrivederci" hanno la stessa lunghezza?

    La lunghezza di una stringa non è la lunghezza di un array…
  • Re: Trasformare una stringa

    _Achille ha scritto:


    Nippolo ha scritto:


    SuperManPC ha scritto:


    1 strlen vale la lunghezza della stringa s
    E quindi numericamente quanto vale nella prima iterazione del ciclo for?
    Domanda mal posta… non c’è una risposta corretta in quanto si tratta di un undefined behavior
    Bravo!
    Scherzi a parte, nel momento in cui gli chiedo un numero si suppone che l'OP almeno un minimo avrebbe dovuto ragionarci, o sbaglio?!
  • Re: Trasformare una stringa

    Nippolo ha scritto:


    Bravo!
    Scherzi a parte, nel momento in cui gli chiedo un numero si suppone che l'OP almeno un minimo avrebbe dovuto ragionarci, o sbaglio?!
    Nono ma hai ragione.
    Almeno abbiamo capito che non sa la differenza tra sizeof e strlen
  • Re: Trasformare una stringa

    Non so la differenza però sono in grado di usarli
  • Re: Trasformare una stringa

    Saresti in grado di implementare la seguente funzione?
    int strlen_fatta_in_casa(char str[]);
    Inoltre mi spieghi il ruolo della getchar() in una funzione che già riceve la stringa t come argomento?

    Supponendo di utilizzare delle stringhe, se l'array t ha una dimensione di 10, quanto sarà, al massimo, la dimensione di s?

    Ci sarebbero anche altre domande, ma iniziamo da queste!
  • Re: Trasformare una stringa

    
    #include <stdio.h>
    
    int strlen_fatta_in_casa(char str[]);
    
    void main()
    {
    	printf("%d", strlen_fatta_in_casa("stringa"));
    }
    
    int strlen_fatta_in_casa(char str[])
    {
    	int i;
    	for (i = 0; str[i] != '\0'; ++i)
    		;
    	return i;
    }
    
Devi accedere o registrarti per scrivere nel forum
102 risposte