Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    32

    Copiare solo una parte di una stringa

    Salve a tutti, come faccio a copiare in una stringa solo una porzione di un'altra stringa?
    Mi spiego meglio: io ho

    char filename[20]

    in cui copio il nome del file passato come primo parametro da linea di comando.

    strcpy(filename, argv[1])

    in questo modo filename è della lunghezza effettiva del nome del file passato come argomento (ho controllato con strlen) e non 20.

    Dovrei creare un'altra stringa che sia soltanto il nome del file senza l'estensione (se il file è file.exe, la seconda stringa deve essere file). Ho provato con

    char temp[10];
    strncpy(temp, filename, (size_t)index);

    dove index è l'indice all'interno della prima stringa in cui c'è il punto
    strncpy dovrebbe copiarmi in temp soltanto i primi "index" caratteri, invece temp contiene il nome del file e un sacco di schifezze.
    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Copiare solo una parte di una stringa

    Originariamente inviato da capri81
    char temp[10];
    strncpy(temp, filename, (size_t)index);

    dove index è l'indice all'interno della prima stringa in cui c'è il punto
    strncpy dovrebbe copiarmi in temp soltanto i primi "index" caratteri, invece temp contiene il nome del file e un sacco di schifezze.
    strncpy copia al massimo N caratteri. Se tra questi non c'è il carattere nullo ('\0'), la stringa non sarà terminata correttamente. Devi aggiungere tu il carattere nullo alla fine.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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