strcspn 문자열 중에서 일치되는 첫 문자의 위치 구하기
- 프로그래밍/C/C++
- 2018. 7. 16.
strcspn 문자열 중에서 일치되는 첫 문자의 위치 구하기
이번에는 strcspn 함수에 대해서 알아보겠다.
strcspn 함수를 사용하려면 string.h 파일을 include 해야된다.
함수의 원형을 보면
1 | unsigned int strcspn(const char *string, const char *strCharSet); | cs |
이라고 나와있다. 사용법을 보자.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> #include <string.h> main() { char *str = "aossuper8.tistory.com"; char *strChar = "!@#$%^&*()_+.?>"; unsigned int pos; pos = strcspn(str, strChar); printf("%d 위치에서 일치되는 첫 문자를 발견하였습니다.\n", pos); } | cs |
< 출력 >
두 번째 인자에 하나라도 일치하는게 있으면 그 위치를 반환해준다.
함수 반환값은 그 위치 값을 반환해준다.
그럼 함수가 어떻게 돌아가는지 구현을 해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> unsigned int strcspn_my(const char *string, const char *strCharSet) { const char *temp; unsigned int n = 0; while (*string) { temp = strCharSet; while (*temp) { if (*string == *temp) return n; temp++; } n++; string++; } return n; } main() { char *str = "aossuper8.tistory.com"; char *strChar = "!@#$%^&*()_+.?>"; // char str[] = "aossuper8.tistory.com"; // char strChar[] = "!@#$%^&*()_+.?>"; // 이렇게 사용해도 됨. unsigned int pos; pos = strcspn_my(str, strChar); printf("%d 위치에서 일치되는 첫 문자를 발견하였습니다.\n", pos); } | cs |