Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Se hai problemi su un pezzo di codice diverso, posta quello.

    Attento comunque che con
    codice:
    char abbr[2];
    puoi contenere una stringa di un solo carattere (carattere + terminatore '\0'). Se vuoi contenere due caratteri o usi un array di tre elementi o accedi separatamente ai due campi e ti scordi le funzioni che operano sulle stringhe.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Se hai problemi su un pezzo di codice diverso, posta quello.

    Attento comunque che con
    codice:
    char abbr[2];
    puoi contenere una stringa di un solo carattere (carattere + terminatore '\0'). Se vuoi contenere due caratteri o usi un array di tre elementi o accedi separatamente ai due campi e ti scordi le funzioni che operano sulle stringhe.
    La parte di codice in cui ho in problema è il main, però ho preferito postare tutto visto che il main è connesso alle altri parti e che questa stranezza avviene proprio richiamando una funzione. In questo caso la funzione ritorna un intero, io voglio capire se si possa utilizzare una funzione come questa come una variabile, oppure se questo può causare dei problemi.

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Cosa intendi per usare come una variabile?

    Comunque ti ripeto che se vuoi memorizzare una stringa di due caratteri non ti basta un array di due caratteri.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ti consiglio di seguire il consiglio e mettere a posto, prima di tutto, la lunghezza di quella stringa ...Linee comescanf("%s", ab);possono creare situazioni imprevedibili.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Intendo poterlo confrontare con altri valori e utilizzarlo in operazioni del tipo x=funzione(generica)+1. Naturalmente a differenza di una variabile non si può assegnarli un nuovo valore come per esempio una cosa del tipo funzione(generica)=3.
    Per quanto riguarda le stringe prendiamo una stringa a[2], essa non è composta dai caratteri a[0], a[1] e a[2]?
    Se cosi non fosse come potrebbe funzionare corretamente un codice come questo?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char ab[2];
        int i;
        for(i=0; i<2; i++) {
            printf("Inserisci la lettera %d:\n", i+1);
            scanf("%c", &ab[i]);
            while(getchar()!='\n');
        }
        ab[i]='\0';
        printf("ab: %s\n", ab);
        printf("Inserisci ab: \n");
        scanf("%s", ab);
        printf("ab: %s", ab);
        return 0;
    }

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Funziona ed è corretto sono due cose diverse
    Se usi gcc prova a compilare con la flag -fno-stack-protector
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.