IT

char *의 부분 문자열을 얻는다.

lottoking 2020. 6. 24. 07:23
반응형

char *의 부분 문자열을 얻는다. [중복]


이 질문에는 이미 답변이 있습니다.

예를 들어, 나는 이것을 가지고

char *buff = "this is a test string";

그리고 싶어 "test". 어떻게해야합니까?


char subbuff[5];
memcpy( subbuff, &buff[10], 4 );
subbuff[4] = '\0';

작업 완료 :)


부분 문자열의 위치와 길이를 알고 있다고 가정합니다.

char *buff = "this is a test string";
printf("%.*s", 4, buff + 10);

하위 문자열을 다른 메모리 대상으로 복사하여 동일한 결과를 얻을 수 있지만 메모리에 이미 있으므로 합리적이지 않습니다.

포인터를 사용하여 불필요한 복사를 피하는 좋은 예입니다.


사용 char* strncpy(char* dest, char* src, int n)에서 <cstring>. 귀하의 경우 다음 코드를 사용해야합니다.

char* substr = malloc(4);
strncpy(substr, buff+10, 4);

strncpy기능 에 대한 전체 설명서는 여기에 있습니다 .


사용할 수 있습니다 strstr. 예제 코드는 here 입니다.

반환 된 결과는 null로 종료되지 않습니다.


당신은 사용할 수 있습니다 strstr()에서<string.h>

$ 남자 strstr

참고 URL : https://stackoverflow.com/questions/4214314/get-a-substring-of-a-char

반응형