strncmp 예제 질문
진샘
문제:문자열의 일부를 추출하는 sub_string()함수를 작성한다.char *sub_string(const char *string_pattern, const char *source)와 같은 함수 원형을 갖는다.source가 가리키는 문자열중에 string_pattern 문자열이 들어가 있으면해당 문자열의 시작주소를 반환하고,없으면 null문자열을 반환한다.이때 strcmp, strncmp함수만 사용가능하다.char source[]=hello world;char pattern[]=lo;char *p=sub_string( (const char *)pattern, (const char *)source);if(p != null){coutpendl;coutstrlen(p)endl;}을 실행시키면lo world8이 출력될 것이다.
----------------
제가 작성한 답은 이렇습니다
char *sub_string(const char *string_pattern, const char *source){ int result = 0; for(int i=0 ; i11 ; i++) { result =sesult =strncmp(string_pattern, source+i, 2); if(result==0) { coutsource+iendl; coutstrlen(source+i)endl; } } return NULL;}
int main (){ char A[]=hello world; char B[]=lo;
char *p=sub_string(B, A); return 0;}
그런데 문제에서 처럼메인함수에다if(p != null){coutpendl;coutstrlen(p)endl;}를 넣어도 아무것도 출력이 안되더라구요... 왜그런지 모르겠습니다
char *sub_string 함수안에 있는 cout은 제대로 작동합니다만...똑바로 만든게 맞는지 잘 모르겠습니다 ㅠㅠ그리고 써놓고도 이해가 안되는 점은coutsource+iendl; 이렇게 하면 주소값이 출력되고cout*(source+i)endl; 이렇게하면 lo world 가 출력될줄 알았습니다
그런데 아니었습니다.. 이해가 안됩니다