Untitled

 avatar
unknown
c_cpp
2 months ago
1.6 kB
4
Indexable
/*
Scrivere un sottoprogramma che riceve come parametri due stringhe, ciascuna contenente una serie di parole di
lunghezza indefinita e separate da un numero qualsivoglia di caratteri separatori (spazi e a capo). Il sottoprogramma
valuta se le due stringhe contengono la stessa sequenza di parole a prescindere dal numero di spazi e a capo che le
separano e non distinguendo tra lettere minuscole e maiuscole. In caso affermativo il sottoprogramma restituisce 1
altrimenti 0.
*/

#include <stdio.h>
#include <string.h>

int confrontaStringhe(char str1[], char str2[])
{
    int j=0;

    for(int i=0; i<strlen(str1); i++)
    {
        if(str1[i] != ' ' && str1[i]!= '\n'){
            if(str1[i] >= 'a' && str1[i] <= 'z'){
                str1[j] = str1[i] - 32;
            }else{
                str1[j] = str1[i];
            }
            j++;
        }
    }
    str1[j] = '\0';

    j=0;

    for(int i=0; i<strlen(str2); i++)
    {
        if(str2[i] != ' ' && str2[i]!= '\n'){
            if(str2[i] >= 'a' && str2[i] <= 'z'){
                str2[j] = str2[i] - 32;
            }else{
                str2[j] = str2[i];
            }
            j++;
        }
    }

    str2[j] = '\0';

    if(strcmp(str1, str2) == 0){
        return 1;
    }
    
    return 0;


}

int main(int argc, char *argv[])
{
    
    char str1[] = "Ciao Mondo"; // --> CIAOMONDO
    char str2[] = "ciao      mondo"; //-->CIAOMONDO

    if(confrontaStringhe(str1, str2) == 1){
        printf("Le stringhe sono identiche\n");
    }else{
        printf("Le stringhe sono diverse\n");
    }


    return 0;

}
Leave a Comment