# include <stdio.h>
// ctype.h は tolower() を使わないため不要ですが、残しておいても問題ありません。
// ただし、今回は tolower() を使わない方針なので、コメントアウトするか削除します。
// # include <ctype.h>
// 大文字を小文字に変換するヘルパー関数
// tolower() を使わないため、自前で実装します
char to_lower_custom(char c) {
if (c >= 'A' && c <= 'Z') {
// 大文字であれば、小文字に変換(ASCII値の差は32)
return c + ('a' - 'A'); // または c + 32;
}
// それ以外の文字(小文字、数字、記号など)はそのまま返す
return c;
}
int fuzzyStrcmp(char s[], char t[]){
//関数の中だけを書き換えてください
//同じとき1を返す,異なるとき0を返す
int i = 0;
// どちらかの文字列が終端('\0')に達するまでループを続けます
while (s[i] != '\0' && t[i] != '\0') {
// 各文字をカスタムの to_lower_custom 関数で小文字に正規化して比較します
if (to_lower_custom(s[i]) != to_lower_custom(t[i])) {
// 大文字小文字を区別しない比較で不一致があれば、0を返して終了します
return 0;
}
i++; // 次の文字へ進む
}
// ループが終了した後、両方の文字列が同時に終端('\0')に達しているかを確認します。
// もし同時に終端に達していれば、長さも一致しており、これまでの文字も全て一致しています。
if (s[i] == '\0' && t[i] == '\0') {
return 1; // ゆるく比較して同じであれば1を返します
} else {
// 片方の文字列がもう一方より長い場合(つまり、同時に終端に達しなかった場合)、
// 文字列の長さが異なるため、0を返します
return 0;
}
}
//メイン関数は書き換えなくてできます
int main(){
int ans;
char s[100];
char t[100];
scanf("%s %s",s
,t
); // main関数は変更しないという制約 ans = fuzzyStrcmp(s,t);
return 0;
}
IyBpbmNsdWRlIDxzdGRpby5oPgovLyBjdHlwZS5oIOOBryB0b2xvd2VyKCkg44KS5L2/44KP44Gq44GE44Gf44KB5LiN6KaB44Gn44GZ44GM44CB5q6L44GX44Gm44GK44GE44Gm44KC5ZWP6aGM44GC44KK44G+44Gb44KT44CCCi8vIOOBn+OBoOOBl+OAgeS7iuWbnuOBryB0b2xvd2VyKCkg44KS5L2/44KP44Gq44GE5pa56Yed44Gq44Gu44Gn44CB44Kz44Oh44Oz44OI44Ki44Km44OI44GZ44KL44GL5YmK6Zmk44GX44G+44GZ44CCCi8vICMgaW5jbHVkZSA8Y3R5cGUuaD4KCi8vIOWkp+aWh+Wtl+OCkuWwj+aWh+Wtl+OBq+WkieaPm+OBmeOCi+ODmOODq+ODkeODvOmWouaVsAovLyB0b2xvd2VyKCkg44KS5L2/44KP44Gq44GE44Gf44KB44CB6Ieq5YmN44Gn5a6f6KOF44GX44G+44GZCmNoYXIgdG9fbG93ZXJfY3VzdG9tKGNoYXIgYykgewogICAgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSB7CiAgICAgICAgLy8g5aSn5paH5a2X44Gn44GC44KM44Gw44CB5bCP5paH5a2X44Gr5aSJ5o+b77yIQVNDSUnlgKTjga7lt67jga8zMu+8iQogICAgICAgIHJldHVybiBjICsgKCdhJyAtICdBJyk7IC8vIOOBvuOBn+OBryBjICsgMzI7CiAgICB9CiAgICAvLyDjgZ3jgozku6XlpJbjga7mloflrZfvvIjlsI/mloflrZfjgIHmlbDlrZfjgIHoqJjlj7fjgarjganvvInjga/jgZ3jga7jgb7jgb7ov5TjgZkKICAgIHJldHVybiBjOwp9CgoKaW50IGZ1enp5U3RyY21wKGNoYXIgc1tdLCBjaGFyIHRbXSl7CgkvL+mWouaVsOOBruS4reOBoOOBkeOCkuabuOOBjeaPm+OBiOOBpuOBj+OBoOOBleOBhAoJLy/lkIzjgZjjgajjgY3vvJHjgpLov5TjgZnvvIznlbDjgarjgovjgajjgY3vvJDjgpLov5TjgZkKCiAgICBpbnQgaSA9IDA7CiAgICAvLyDjganjgaHjgonjgYvjga7mloflrZfliJfjgYzntYLnq68oJ1wwJynjgavpgZTjgZnjgovjgb7jgafjg6vjg7zjg5fjgpLntprjgZHjgb7jgZkKICAgIHdoaWxlIChzW2ldICE9ICdcMCcgJiYgdFtpXSAhPSAnXDAnKSB7CiAgICAgICAgLy8g5ZCE5paH5a2X44KS44Kr44K544K/44Og44GuIHRvX2xvd2VyX2N1c3RvbSDplqLmlbDjgaflsI/mloflrZfjgavmraPopo/ljJbjgZfjgabmr5TovIPjgZfjgb7jgZkKICAgICAgICBpZiAodG9fbG93ZXJfY3VzdG9tKHNbaV0pICE9IHRvX2xvd2VyX2N1c3RvbSh0W2ldKSkgewogICAgICAgICAgICAvLyDlpKfmloflrZflsI/mloflrZfjgpLljLrliKXjgZfjgarjgYTmr5TovIPjgafkuI3kuIDoh7TjgYzjgYLjgozjgbDjgIEw44KS6L+U44GX44Gm57WC5LqG44GX44G+44GZCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBpKys7IC8vIOasoeOBruaWh+Wtl+OBuOmAsuOCgAogICAgfQoKICAgIC8vIOODq+ODvOODl+OBjOe1guS6huOBl+OBn+W+jOOAgeS4oeaWueOBruaWh+Wtl+WIl+OBjOWQjOaZguOBq+e1guerr++8iCdcMCfvvInjgavpgZTjgZfjgabjgYTjgovjgYvjgpLnorroqo3jgZfjgb7jgZnjgIIKICAgIC8vIOOCguOBl+WQjOaZguOBq+e1guerr+OBq+mBlOOBl+OBpuOBhOOCjOOBsOOAgemVt+OBleOCguS4gOiHtOOBl+OBpuOBiuOCiuOAgeOBk+OCjOOBvuOBp+OBruaWh+Wtl+OCguWFqOOBpuS4gOiHtOOBl+OBpuOBhOOBvuOBmeOAggogICAgaWYgKHNbaV0gPT0gJ1wwJyAmJiB0W2ldID09ICdcMCcpIHsKICAgICAgICByZXR1cm4gMTsgLy8g44KG44KL44GP5q+U6LyD44GX44Gm5ZCM44GY44Gn44GC44KM44GwMeOCkui/lOOBl+OBvuOBmQogICAgfSBlbHNlIHsKICAgICAgICAvLyDniYfmlrnjga7mloflrZfliJfjgYzjgoLjgYbkuIDmlrnjgojjgorplbfjgYTloLTlkIjvvIjjgaTjgb7jgorjgIHlkIzmmYLjgavntYLnq6/jgavpgZTjgZfjgarjgYvjgaPjgZ/loLTlkIjvvInjgIEKICAgICAgICAvLyDmloflrZfliJfjga7plbfjgZXjgYznlbDjgarjgovjgZ/jgoHjgIEw44KS6L+U44GX44G+44GZCiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cn0KCi8v44Oh44Kk44Oz6Zai5pWw44Gv5pu444GN5o+b44GI44Gq44GP44Gm44Gn44GN44G+44GZCmludCBtYWluKCl7CiAgICBpbnQgYW5zOwogICAgY2hhciBzWzEwMF07CiAgICBjaGFyIHRbMTAwXTsKICAgIHNjYW5mKCIlcyAlcyIscyx0KTsgLy8gbWFpbumWouaVsOOBr+WkieabtOOBl+OBquOBhOOBqOOBhOOBhuWItue0hAogICAgcHJpbnRmKCIlcyA9ICVzIC0+ICIscyx0KTsKICAgIGFucyA9IGZ1enp5U3RyY21wKHMsdCk7CiAgICBwcmludGYoIiVkXG4iLGFucyk7CiAgICByZXR1cm4gMDsKfQo=