2012-11-12 4 views
2

는이 프로그램이 찾고 문자의 위치를 ​​계산하는 방법 C.C 함수 strchr - 문자의 위치를 ​​계산하는 방법?

문제가
/* strchr example */ 
#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    char str[] = "This is a sample string"; 
    char * pch; 
    printf ("Looking for the 's' character in \"%s\"...\n",str); 
    pch=strchr(str,'s'); 
    while (pch!=NULL) 
    { 
    printf ("found at %d\n",pch-str+1); 
    pch=strchr(pch+1,'s'); 
    } 
    return 0; 
} 

, 이해가 안,에 strchr과 기능에 대한 예제 코드가 있습니다. "pch"및 "str"의 포인터와 관련이 있다고 생각하지만 어떻게 작동합니까? 좀 더 자세하게 설명 할 수 누군가가있을 경우

은 좋은 것입니다. 포인터에서 발견 된 결과로, 문자열의 첫 번째 문자에 대한 포인터

덕분에, 그것은 단순히 str 감산 eljobso

+0

단계별로 디버거를 사용하는 것은 어떨까요? –

+2

Google for *** 포인터 연산 ***. – alk

답변

8

.

다음은 0부터 인덱싱 된 문자의 위치가됩니다. 문자열의 첫 번째 위치에 문자가 있으면 str이므로 (pstr - str) == 0이 참임을 쉽게 알 수 있습니다. . 하나를 추가하면 1 기반으로 만들어지기 때문에 프레젠테이션 목적으로 유용 할 때도 있습니다.

+0

감사합니다. 이제 알았습니다. – eljobso