Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - copiare argv[] in una stringa..
Forum - C/C++ - copiare argv[] in una stringa..

Avatar
diddo (Normal User)
Newbie


Messaggi: 1
Iscritto: 13/07/2011

Segnala al moderatore
Postato alle 23:40
Sabato, 28/01/2012
Salve ragazzi volevo sapere se fosse possibile copiare in c argv[] in una stringa..
Ho provato con:
char str[4];
strcpy(str,argv[1]);
ma il compilatore mi dice: 'warning: passing argument 2 of 'strcpy' makes pointer from integer without a cast'
come posso fare grazie mille!

il programma mi chiede di inserire da linea di comando il parametro cB e io volevo prendere solo la parte in cui c'è la B.
per questo avevo provato a fare:
Codice sorgente - presumibilmente Plain Text

  1. strcpy(str, argv[1][2]);



però il compilatore mi dava warning.
cosi ho impostato dal main gli argomenti da linea di comando..
Codice sorgente - presumibilmente C/C++

  1. int main(int argc, char* argv[])



Alla fine ho provato così e funziona
Codice sorgente - presumibilmente Plain Text

  1. cat_num=argv[1][2];
  2.         sprintf(str,"%c",cat_num );


così mi ha dato il carattere che mi serviva.
ho allegato il codicce...
poi nel codice ho fatto questo confronto
Codice sorgente - presumibilmente Plain Text

  1. if((argv[1][1]=='c')&&(argv[2][1]=='m'))


questo perche da linea di comando oltre a -cB ci può essere im modo opzionale -m (quindi la linea può avere -cB -m) io ho provato il confronto cosi  da mettere un else se la parte -m non c'è, ma forse non è consentito...:rofl:


diddo ha allegato un file: main.zip (1063 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da diddo il 29/01/2012 alle 14:15
PM
Avatar
crybot (Member)
Pro


Messaggi: 115
Iscritto: 13/09/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 0:22
Domenica, 29/01/2012
questo codice:
Codice sorgente - presumibilmente C/C++

  1. char str[4];
  2. strcpy(str,argv[1]);



funziona.

come hai dichiarato il parametro argv?

Ultima modifica effettuata da crybot il 29/01/2012 alle 0:41
allora il programma mi chiede da linea di comando di iserire un comando -cB - diddo - 29/01/12 01:07
questo non risponde alla mia domanda... tu il parametro argv l'hai dichiarato nel modo sottostante? int main(char *argv[])) {...} - crybot - 29/01/12 01:12
si scusa l'ho scritto nel messaggio iniziale - diddo - 29/01/12 01:13
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 10:15
Domenica, 29/01/2012
char str[4];
strcpy(str,argv[1]);

è codice corretto anche se a te serve

char c = argv[1][1];

Comunque, può essere che quel warning sia generato da altre linee di codice ... c'è altro nel tuo programma?

Quale compilatore usi?

Ultima modifica effettuata da nessuno il 29/01/2012 alle 10:20
il warning me lo da su quella riga...come programma uso Code Blocks e come compilatore GNU GCC COMPILER... - diddo - 29/01/12 14:08
Non so quale versione tu abbia ma con codeblocks ho provato e non ho alcun warning. - nessuno - 29/01/12 14:22
il problema non è perchè uso argv come matrice quindi strcpy(str,argv[1][2])? - diddo - 29/01/12 15:17
Tu hai scritto all'inizio Ho provato con: char str[4]; strcpy(str,argv[1]); - nessuno - 29/01/12 16:08
si hai ragione pensavo che usare argv come matrice o come vettore non dava problemi...e se io fossi interessato al solo carattere B come posso copiarlo in una stringa? - diddo - 29/01/12 23:29
Ma tu le leggi le risposte? Te l'ho già scritto ... - nessuno - 30/01/12 07:45


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM