개념:
1. string.h 에 포함
2. 원형 :
unsigned int strcspn(const char* string, const char* strCharSet)
unsigned int strspn(const char* string, const char* strCharSet)
3. strcspn : 문자열중 일치하는 첫번째 문자 위치를 검색
4. strspn : 문자열중 일치하지 않는 첫번째 문자 위치를검색
5. 만약 결과가 없다면 문자널이 일치하는곳을 찾아 리턴해준다.
목표:
사용해보고 만들어보자
소스코드:main.c
#include <stdio.h>
#include <string.h>
unsigned int MYstrcspn(const char* string, const char* strCharSet);
unsigned int MYstrspn(const char* string, const char* strCharSet);
int main(void)
{
const char * string = "000000000010000";
const char* strCharSet = "1111111111111111";
int result = -1;
unsigned int strlength = strlen(string);
//1을 찾으면 주소값을 리턴하게 만들 예제를 만들어보조
puts("strcspn 호출");
result = strcspn(string, strCharSet);
if (result == -1)
{
puts("찾기 실패");
}
else if (result < strlength)
{
printf("문자열에서 첫번째로 일치하는 문자를 찾았습니다. 주소값 : %d \n", result);
}
result = -1;
//1을 찾으면 주소값을 리턴하게 만들 예제를 만들어보조
puts("strspn 호출");
result = strspn(string, strCharSet);
if (result == -1)
{
puts("찾기 실패");
}
else if (result < strlength)
{
printf("문자열에서 첫번째로 일치하지 않는 문자를 찾았습니다. 주소값 : %d \n", result);//첫번째 위치 0 입니다.
}
//구현해본다.
result = -1;
puts("MYstrcspn 호출");
result = MYstrcspn(string, strCharSet);
if (result == -1)
{
puts("찾기 실패");
}
else if (result < strlength)
{
printf("문자열에서 첫번째로 일치하는 문자를 찾았습니다. 주소값 : %d \n", result);
}
result = -1;
//1을 찾으면 주소값을 리턴하게 만들 예제를 만들어보조
puts("MYstrspn 호출");
result = MYstrspn(string, strCharSet);
if (result == -1)
{
puts("찾기 실패");
}
else if (result < strlength)
{
printf("문자열에서 첫번째로 일치하지 않는 문자를 찾았습니다. 주소값 : %d \n", result);//첫번째 위치 0 입니다.
}
return 0;
}
unsigned int MYstrcspn(const char* string, const char* strCharSet)
{
int i = 0, j = 0;
int IsRun = 1;
while (IsRun)
{
while (IsRun)
{
if (string[i] == strCharSet[j])
{
IsRun = 0;
}
if (j == strlen(strCharSet))
{
j = 0;
break;
}
j++;
}
i++;
}
return i - 1; // 문자열은 0부터 시작하기때문에
}
unsigned int MYstrspn(const char* string, const char* strCharSet)
{
int i = 0, j = 0;
int IsRun = 1;
while (IsRun)
{
while (IsRun)
{
if (string[i] == strCharSet[j] || j == strlen(strCharSet))
{
break;
j = 0;
}
else
{
IsRun = 0;
}
j++;
}
i++;
}
return i - 1; // 문자열은 0부터 시작하기때문에
}
결과
#c언어, #c언어입문, #프로그램입문, #strcspn, #strspn, #strcspn구현, #strspn구현
'Programing - C > C Basic grammar ' 카테고리의 다른 글
068 strpbrk (0) | 2017.07.28 |
---|---|
067 strtok_s (0) | 2017.07.28 |
065 strchr를 사용해보고 구현해보자 (0) | 2017.07.28 |
064 strstr (0) | 2017.07.28 |
063 strlen 사용및 구현 (0) | 2017.07.28 |