codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <string.h> #define MAX_STRING_LENGTH 100 #define MAX_MATCH_STRING_LENGTH 20 #define MAX_ASCII_LENGTH 255 bool check_match(char str[], char match[]); void mark_ascii_flag(char str[], bool flag[]); void mark_ascii_flag(char str[], bool flag[]) { /* 'pointer' & 'while' style */ char * pCurr = str; while(*pCurr) { flag[*pCurr] = true; pCurr++; } /* 'for' & 'strlen' style */ /* int i = 0, strLen = strlen(str); for(i = 0 ; i < strLen ; i++) flag[str[i]] = true; */ } bool check_match(char str[], char match[]) { int i, curr_match_idx = 0; bool match_flag[MAX_ASCII_LENGTH] = {false, }; // make right match flag array bool comp_match_flag[MAX_ASCII_LENGTH] = {false, }; // O(N+M) mark_ascii_flag(match, comp_match_flag); mark_ascii_flag(str, match_flag); // Compare two Flag Arrays for(i = 0 ; i < MAX_ASCII_LENGTH ; i++) { if(comp_match_flag[i] == true && match_flag[i] == false) return false; } return true; } void get_input(char str[]) { printf("Type any letters whatever you want:"); scanf("%s", str); } int main() { char input_str[MAX_STRING_LENGTH]; char match[MAX_MATCH_STRING_LENGTH] = "IloveKorea"; //get_input(input_str); // codepad.org 에서는 standard input 을 못 받으므로 대신 처리 // 아래 라인을 주석 처리하고 get_input 라인을 주석 해제하면 입력을 받아서 처리 //strcpy(input_str, "Iabcloabcjdvjse sdkkjKjksdoancrjekka"); strcpy(input_str, "asdjkeorkjdoKKKjjjdvdseksdoljjcmnI"); if(check_match(input_str, match)) printf("I love Korea\n"); return 0; }
Private
[
?
]
Run code