Codice dei programmi nella directory:

///File: StringheUnisci.c
/****Allenamento funzioni su stringhe. void unisci1(char str1[], char str2[]) /// se str1="ciao!!" e str2="XYZ", str1 diventa "cXiYaZo!!" //se str1="XYZ" str2="ciao!!", str1 diventa "XcYiZao!!" void unisci2(char str1[], char str2[]) // se str1="ciao" e str2="ABCD" str1 diventa "ciaoDCBA" void unisci3(char str1[], char str2[]) // se str1="ciao" e str2="ABCD" str1 diventa "CIAOabcd" void unisci4(char str1[], char str2[]) // se str1="0123" e str2="456" str1 diventa "ABCDEFG" (A==0, B==1, C==2, ... J==9) ***/ #include<stdio.h> #include <string.h> /// se str1="ciao!!" e str2="XYZ", str1 diventa "cXiYaZo!!" // se str1="XYZ" str2="ciao!!", str1 diventa "XcYiZao!!" void unisci1(char str1[], char str2[]) { char str3[128]; int i, j = 0; for (i = 0; str1[i] != '\0' && str2[i] != '\0'; i++) { // copio in str3 un carattere da str1 e un carattere da str2 str3[j++] = str1[i]; str3[j++] = str2[i]; } if (str1[i] == '\0') // se la prima e' finita, copio la seconda while (str2[i] != '\0') str3[j++] = str2[i++]; else while (str1[i] != '\0') // se la seconda e' finita, copio la prima str3[j++] = str1[i++]; str3[j] = '\0'; // metto il terminatore strcpy(str1,str3); // metto in str1 str3 } void unisci2(char str1[], char str2[]) // se str1="ciao" e str2="ABCD" diventa "ciaoDCBA" { int l1=strlen(str1); int l2=strlen(str2); int i; for(i=l2-1; i >=0; i--) // ciclo che parte dal fondo di str2 e compia in str1 str1[l1++]=str2[i]; str1[l1]='\0'; } void unisci3(char str1[], char str2[]) // se str1="ciao" e str2="ABCD" str1 diventa "CIAOabcd" { int i,j; for(i=0; str1[i]!='\0'; i++) if(str1[i] >='a' && str1[i]<='z') str1[i]-=32; for(j=0; str2[j]!='\0'; j++,i++) { str1[i] = str2[j]; if (str1[i]>='A' && str1[i]<='Z') str1[i]+=32; } str1[i]='\0'; // Nota che NON cambio str2!!! } void unisci4(char str1[], char str2[]) // se str1="0123" e str2="456" str1 diventa "ABCDEFG" (A==0, B==1, C==2, ... J==9) { int i; strcat(str1,str2); for(i=0; str1[i]!='\0'; i++) if(str1[i]>='0' && str1[i]<='9') str1[i]+='A'-'0'; //se era '0' diventa 'A', se '1' diventa 'B',.... } int main() { char str1[128]; char str2[128]; printf("Stringa 1->"); gets(str1); printf("Stringa 2->"); gets(str2); // decommenta la funzione che vuoi provare //unisci1(str1, str2); //unisci2(str1, str2); unisci3(str1, str2); //unisci4(str1, str2); printf("Str1=[%s]\n",str1); return 0; }
///(Fine file: StringheUnisci.c)