PDA

View Full Version : [C] - stringhe


gepeppe
02-10-2007, 20:06
salve a tutti, volevo avere delle delucidazioni sulle stringhe in C, perchè credo di non aver capito molto. allora, faccio due casi distinti a seconda delle dichiarazioni:
1) char string [] (array di caratteri)

char string [] = "ciao" ==> array di stringhe.

se io volessi modificare questo array string, come dovrei fare???

string = "altro" non va bene, cosi come string [] ="altro"..ecc.!!! ma allora posso assegnargli il valore solo al momento della dichiarazione?

2)char *str;

str = "ciao"

str = "altro"

in questo caso con i puntatori va benissimo..

grazie per le risposte

Gino+89+
02-10-2007, 20:37
Una stringa è un array di caratteri.


1) char string [] (array di caratteri)

Esatto è un array di caratteri, cioè una stringa.


char string [] = "ciao" ==> array di stringhe.

No è sempre un array di caratteri di 5 elementi {'c','i','a','o','\0'}

Un array di stringhe è per esempio questo:
char *string[20]; //dove ogni componente punta ad una stringa


se io volessi modificare questo array string, come dovrei fare???

O con un metodo di basso livello (e frustrante) come per esempio questo:

char inp[]="ciao";
char stringa[20];

for(i=0;i<MAX_LUNG;i++)
stringa[i]=inp[i];

...etc....
Oppure utilizzando qualche libreria come la string..

#include <string.h> //header file

...

strcpy(stringa,"ciao"); //assegna a stringa "ciao"


2)char *str;

str = "ciao"

str = "altro"

in questo caso con i puntatori va benissimo..


Si ma fai attenzione ad usare i puntatori in questo modo...

gepeppe
02-10-2007, 21:07
Una stringa è un array di caratteri.
......
Oppure utilizzando qualche libreria come la string..

#include <string.h> //header file

strcpy(stringa,"ciao"); //assegna a stringa "ciao"



quindi devo usare le funzioni di quella libreria, ho letto che ce ne sono un bel po...


Si ma fai attenzione ad usare i puntatori in questo modo...

puoi spiegarti meglio?