01: // copia  e concatenazione di stringhe
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: #include<string.h>
06: 
07: int main(int argc, char **argv){
08: 
09:   char s1[400] = "The Mississippi is a long river.";
10:   char s2[400] = ""; // stringa vuota (ma il carattere di terminazione '\0' c'e'!
11: 
12:   printf("s1=[%s]\n", s1);
13:   printf("s2=[%s]\n", s2);
14: 
15:   // s2=s1 FIXME non si puo' fare
16: 
17:   strcpy(s2, s1);    // copio il contenuto di s1 in s2 (posso vederlo come assegnamento)
18:   printf("dopo strcpy(s2, s1),  s2=[%s]\n", s2); 
19: 
20:   strcat(s2, s1);     // accodo al contenuto di s2 quello di s1
21:   printf("dopo strcat(s2, s1),  s2=[%s]\n", s2);
22: 
23:   strcpy(s2, "");     // copio in s2 una stringa costante
24:   printf("dopo strcpy(s2, \"\"),  s2=[%s]\n", s2);
25: 
26:   strcpy(s2, "Fondamenti");  // copio in s2 una stringa costante
27:   printf("dopo strcpy(s2, \"Fondamenti\"),  s2=[%s]\n", s2); 
28: 
29:   strncpy(s2 ,s1, 5);       // copio in s2 i primi 5 caratteri di s1 (o quelli che ci sono se s1 contiene meno di 5 caratteri incluso il carattere di terminazione) 
30:   printf("dopo strncpy(s2, s1, 5),  s2=[%s]\n", s2);
31: 
32:   strncpy(s2 ,"topo", 5);  // come sopra ma con stringa costante 
33:   printf("dopo strncpy(s2, \"topo\", 5),  s2=[%s]\n", s2);
34: 
35:   return 0;
36: }
37: 
38: /* 
39:    ESECUZIONE
40: 
41: s1=[The Mississippi is a long river.]
42: s2=[]
43: dopo strcpy(s2, s1),  s2=[The Mississippi is a long river.]
44: dopo strcat(s2, s1),  s2=[The Mississippi is a long river.The Mississippi is a long river.]
45: dopo strcpy(s2, ""),  s2=[]
46: dopo strcpy(s2, "Fondamenti"),  s2=[Fondamenti]
47: dopo strncpy(s2, s1, 5),  s2=[The Mmenti]
48: dopo strncpy(s2, "topo", 5),  s2=[topo]
49: 
50: */
51: 
52: 
53: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it