Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [c]strcpy

  1. #1

    [c]strcpy

    in una struttura ho un array char e voglio attribirhli una stringa.
    ho letto che con strcpy() si può farlo.
    questo è il mio sorgente:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    struct xy{
    	int a;
    	int b;
    	char z[10];
    }ciao;
    
    int main()
    {
    	ciao.a=10;
    	ciao.b=20;
    	strcpy(ciao.z,"ciao");
    	printf("%d %d %s",ciao.a,ciao.b,ciao.z);
    	return 0;
    }
    quando lo compilo però mi dice:
    missing prototype of strcpy.
    sapreste aiutarmi?
    grazie,
    mercuzio

  2. #2
    trovato!!!
    codice:
    #include <string.h>
    però mi da errore, perchè?

  3. #3
    Che errore?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    mi diceva che la memoria non poteva essere "written"!!!
    ho provato a fare così:
    codice:
    #include <stdio.h>
    #include <string.h>
    struct xy{
    	char a[10];
    	char b[10];
    	char z[10];
    };
    struct xy ciao;
    struct xy *p;
    char main()
    {
    	strcpy(ciao.a,"ciao");
    	strcpy(ciao.b,"come");
    	strcpy(ciao.z,"va?");
    	printf("%s %s %s",ciao.a,ciao.b,ciao.z);
    	return 0;
    }
    e funzia.
    che tu sappia, quando faccio una struct devo dichiarare tutte variabili uguali, cioè tutte char, o tutte int e così via?

  5. #5
    huuummmm...
    codice:
    #include <stdio.h>
    #include <string.h>
    struct xy{
    	char a[10];
    	char b[10];
    	char z[10];
    	int s;
    }ciao,*p;
    char main()
    {
    	strcpy(ciao.a,"ciao");
    	strcpy(ciao.b,"come");
    	strcpy(ciao.z,"va?");
    	p=&ciao;
    	(*p).s=10;
    	printf("%s %s %s %d",ciao.a,ciao.b,ciao.z,(*p).s);
    	return 0;
    }
    così funzia...ma....non capisco...

  6. #6
    forse non posso attribuire valori ad int se prima non dichiaro un puntatore...ma...è strano...secondo me la mia supposizione è sbagliata.

  7. #7
    Scusami ma non crdo di avere ben afferrato il problema; quello che stai dicendo è che se non setti s tramite un puntatore a ciao, ma lo fai invece direttamente con

    ciao.s=10;

    non funziona?

    Mi sembrerebbe stranissimo... tralaltro non sei affatto obbligato ad avere in una struct tutti elementi dello stesso tipo...

    ?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    esatto...anche a me sembra stranissimo!!!!
    ma perchè non funziona???
    hai provato a compilare il sorgente?

  9. #9
    insomma, questo sorgente non mi funzia!!!
    codice:
    #include <stdio.h>
    #include <string.h>
    struct xy{
    	char a[10];
    	char b[10];
    	char z[10];
    	int s;
    }ciao,*p;
    int main()
    {
    	strcpy(ciao.a,"ciao");
    	strcpy(ciao.b,"come");
    	strcpy(ciao.z,"va?");
    	ciao.s=10;
    	printf("%s %s %s %d",ciao.a,ciao.b,ciao.z,ciao.s);
    	return 0;
    }
    mi dice che la memoria non poteva essere "read"

  10. #10
    ma porc.....scusa,è il mio pc che fa schifo!!!
    ho riavviato il sistema ed ora funzia,scusami ancora.
    tutta sta tiritera e...per un errore di questo schifo di winzzoz!!!
    scusa ancora per il tempo che ti ho rubato.

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.