Untitled
unknown
c_cpp
a year ago
1.6 kB
12
Indexable
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char to_lower_custom(char c) {
if (c >= 'A' && c <= 'Z') {
return c + ('a' - 'A');
}
return c;
}
int is_anum_or_letter(char c) {
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')) {
return 1;
}
return 0;
}
void normalizza_stringa(char* input) {
int j = 0;
int parola_iniziata = 0;
//input " Ciao!!###@@ Come\nstai? \n BeNIssimo ";
for (int i = 0; input[i] != '\0'; i++) {
if (is_anum_or_letter(input[i]) == 1) {
if (j > 0 && parola_iniziata == 1) {
input[j] = ' ';
j++;
}
input[j] = to_lower_custom(input[i]);
j++;
parola_iniziata = 0;
} else {
parola_iniziata = 1;
}
}
input[j] = '\0';
}
int confronta_stringhe(char str1[], char str2[]) {
char copia1[strlen(str1) + 1];
char copia2[strlen(str2) + 1];
strcpy(copia1, str1);
strcpy(copia2, str2);
normalizza_stringa(copia1);
normalizza_stringa(copia2);
if(strcmp(copia1, copia2) == 0)
{
return 1;
}
return 0;
}
int main() {
char* stringa1 = "Ciao Come stai\n\nBeNIssimo";
char* stringa2 = "\nCiao\nCome stai Benissimo";
if (confronta_stringhe(stringa1, stringa2) == 1) {
printf("Le stringhe contengono le stesse parole\n");
} else {
printf("Le stringhe NON contengono le stesse parole\n");
}
return 0;
}
Editor is loading...
Leave a Comment