3
2つの文字列を比較するプログラムを作成しようとしています。私は一致する場合*s1
と*s2
を一致させたいです。しかし、s2
に星(’*’)
が含まれている場合、s1
とs2
が同じになるようにこの星を置き換えることができます(空の場合もあります)。s2
はできるだけ多くの星を保持できます。
を文字列"main"
に置き換えて2つの文字列を同一にすることができるため、たとえば"main.c"
と"*.c"
が一致します。私がこれまで試したどのような以下のコードで見ることができます。2つの文字列が一致する場合は一致するプログラムを作成する
#include
int identic(char *s1, char *s2)
{
if(*s1 != '\0' && s2 == '')
return (identic(s1 + 1, s2) || identic(s1, s2 + 1));
if(*s1 == '\0' && s2 == '')
return (identic(s1, s2 + 1));
if(*s1 == *s2 && *s2 != '\0' && *s2 != '\0')
return (identic(s1 + 1, s2 + 1));
if(*s1 == *s2 && *s1 == '\0' && *s2 == '\0')
return (1);
return (0);
}
int main() {
printf("%c\n", identic("asfd", "f"));
}
ビクター:コードは 'C'ではなく' C++ 'です。 – user1336087
このプログラムを書くのは、特に、複数の '* '文字を許可する場合には、はるかに難しいです –
コンパイルエラーはありませんでしたか?"エラー:空の文字定数 " ' if(* s1!=' \ 0 '   && s2 == ') ' –