Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    esercizo in linguaggio C per esame che non riesco a risolvere

    Ciao a tutti !
    ho un problema con questo esercizio , ecco il testo :

    dalla linea di comando inserire una stringa alfanumerica e restituire il doppio del valore della sola sequenza numerica si assume ch n[256]

    dato ad esempio dghjk14

    restituisce sola il doppio della sequenza numerica , cioè 28,

    ecco il mio codice che ovviamente non è giusto , il mio problema è come faccio a individuare isoli caratteri numerici dalla linea di comando, questo codice mi dà solamente il primo argomentoche inserisco nella linea di comando , poi insieme a questo mi dà uno zero , se invece inserisco una stringa alfanumerica mi dà segmentation fault ; se c'è qualcuno che mi possa aitare gli sarei veramente grato ,
    codice:
    #include<stdio.h>
    
    int main(int argc, char*argv[]){
        int n,i;
        char ch[256];
        n = strlen(argv[1]);
    
        for(i=0;i<n;i++)
            if((*argv[i]>=0 || *argv[i]<=9))
                printf("%d",(atoi(argv[i]))*2);
        return 0;
    }

  2. #2
    Non ho capito se nella stringa c'è una sola sequenza numerica e se ci possono essere più stringhe. Comunque un'idea è quella di memorizzare i numeri trovati in una string e alla fine usare atoi. Una bozza potrebbe essere:
    codice:
    int main(int argc, char*argv[]){
    
        int n,i;
        char ch[256];
        n = strlen(argv[1]);
        int index = 0;
        for(i=0;i<n;i++)
    
            if((argv[1][i]>='0' && argv[1][i]<='9'))
    
                ch[index++] = argv[1][i];
    
        printf("%d",(atoi(ch))*2);
    
        return 0;
    }

  3. #3
    grazie per la risposta, si certo ci possono essere altre sringhe numeriche , ciò che verrà stampato sarà una stinga intera caratterizzata dal prodotto di ciascun carattere alfanumerico , non ho capito bene cosa farebbe l'index che hai dichiarato...

  4. #4
    Serve a tenere conto della prima cella disponibile nel vettore ch.
    Se possono esserci più di una stringa allora devi tenere conto anche di argc, ti servirà per decretare quante iterazioni di un ciclo esterno devi fare.

  5. #5
    ok grazie tante

  6. #6

    Moderazione

    Benvenuto sul forum! Ti ricordo che:
    • il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione;
    • il linguaggio di riferimento va sempre specificato (anche nel titolo, sotto forma di "tag").


    Ora correggo io, in futuro imposta correttamente la discussione fin da subito; nel frattempo ti consiglio di dare un'occhiata al regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    ok grazie

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 © 2026 vBulletin Solutions, Inc. All rights reserved.