3
두 문자열을 비교하는 프로그램을 만들려고합니다. 일치하는 경우 *s1
과 *s2
을 일치시키고 싶습니다. 그러나 s2
에 별 (’*’)
이 포함되어있는 경우 s1
과 s2
이 동일한 문자열 (공백이라도 있음)로 대체 할 수 있으며 가능한 한 많은 별을 s2
개 포함 할 수 있습니다.
예를 들어 ’*’
을 문자열 "main"
으로 바꾸어 두 문자열을 동일하게 지정할 수 있기 때문에 "main.c"
과 "*.c"
이 일치 할 수 있습니다. 지금까지 아래의 코드에서 볼 수있는 노력은 무엇 :두 문자열이 일치하는 경우 일치하는 프로그램 만들기
#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"));
}
Victor : 코드는 C++가 아니고 C로되어 있습니다. – user1336087
그 프로그램을 쓰는 것이 훨씬 더 어렵습니다. (특히 여러 개의'*'문자를 허용하는 경우) –
컴파일러 오류가 발생하지 않았습니까? "오류 : 빈 문자 상수" 'if (* s1! = '\ 0' & nbsp; && s2 == ')' –