int find(char* source/*source string*/, char* target/*substring*/)//소스 문자열에서 반환된 위치를 찾습니다. 찾을 수 없으면 -1을 반환합니다. return 1, 변경 Return i가 return 1로 변경됩니다.
{
int i,j;
int s_len=strlen(출처);
int t_len=strlen(대상);
if(t_len>s_len)
{
반품 -1;
}
for(i=0;i
{
j=0;
int 플래그=1;
if(소스[i]==대상[j])
{
int k,p=i;
for(k=0;k {
if(소스[p]==대상[j])
{
p++;
j++;
계속;
}
그밖에
{
플래그=0;
휴식;
}
}
}
그밖에
{
계속;
}
if(플래그==1)
{
반환;
}
}
반품 -1;
}
함수 포인터는 때때로 매우 유용합니다. 예를 들어 구조체에서 함수 포인터를 정의하면 C 언어의 C++ 클래스 멤버 함수와 유사한 기능을 구현할 수 있습니다.
다음 프로그램은 입력 숫자의 나머지 부분(1 또는 0)에 따라 else if 없이 해당 함수를 호출할 수 있는 함수 포인터 배열을 정의합니다.
//입력이 홀수입니다
void FuncOdd(int n)
{
float i, nIterator = 0;
printf("홀수를 입력하셨습니다.n");
for (i = 1; 나는 {
nIterator+=1/i;
}
printf("결과는 다음과 같습니다: %fn",nIterator);
}
//입력은 짝수입니다
void FuncEven(int n)
{
float i, nIterator = 0;
printf("짝수를 입력하셨습니다;n");
for (i = 2; 나는 {
nIterator+=1/i;
}
printf("결과는 다음과 같습니다: %fn",nIterator);
}
int 메인()
{
int nInput = 0; // 입력된 숫자를 저장합니다
void (*func[2])(int); // 두 개의 다른 함수를 가리키는 함수 포인터를 정의합니다
func[0] = FuncEven;
func[1] = FuncOdd;
printf("숫자를 입력하세요:") // 콘솔에서 입력받기
scanf("%d",&nInput);
(*func[nInput%2])(nInput) // 입력된 숫자에 따라 해당 함수를 호출합니다
0을 반환합니다;
}
int top은 포인터의 범주에 속해서는 안 되지만, int의 공통변수에 대한 정의는 음수, 0, 양수에 따라 어떻게 사용되는지에 따라 달라진다고 판단할 수 있습니다. 이 클래스로 사용됩니다. 이 변수가 루프의 카운터인 경우(루프 수가 증가하거나 감소함을 의미) 루프가 성공적으로 실행된 횟수를 확인할 수 있습니다
Reader는 클래스 이름입니다. 이는 클래스도 데이터 유형임을 의미합니다
int와 마찬가지로 데이터 유형 이름입니다
Reader read[Maxr];는 이 유형의 배열 변수가 아마도 매크로에 의해 정의된 값임을 의미합니다
왜 이렇게 정의할 수 있나요? 클래스는 외부 클래스를 포함하여 모든 데이터 유형(C의 구조체와 동일)을 포함할 수 있기 때문입니다
위 내용은 포인터를 사용하여 작성된 C 언어 함수 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!