반응형
부분 문자열의 길이를 계산할 때 "오른쪽-왼쪽+2)"의 의미는 무엇입니까?
토큰을 검출하기 위한 프로그램을 C에 설계하고 있습니다.
네 번째 줄에서 헷갈렸어요.의 개요(right-left+2)
할 수 있을까?
char* sub_string(char* str, int left, int right)
{
int i;
char* sub_str = (char*) malloc(sizeof(char)*(right-left+2)); /* 4th line */
}
right-left+2
이 경우라면right-left+1+1
.
어디에righ-left
왼쪽은 세지 않고 왼쪽부터 오른쪽까지의 길이입니다.따라서 1 + 1 입니다.
다른 +1은 공백 문자를 하나 더 만들기 위한 것으로, 끝은 0이 추가될 가능성이 높습니다.
그런데 함수에 클린이 없습니다.return
진술.
예: (David C에게 감사합니다.)예제의 아이디어에 대한 순위 부여)"this"
이내에"more this than that"
:
more this than that
0 5 8
그't'
에 있다left
5, 그's'
에 있다right
8. 의 길이"this"
는 분명히 4입니다(터미네이터 0은 카운트되지 않습니다).하지만 8-5는 3밖에 안 돼요그래서 하나를 사용하세요.+1
추가 문자를 포함하다't'
누락...)
이 서브스트링이 malloced 메모리에 포인터를 통해 반환되는 경우, 이것이 함수의 나머지(누락)가 해야 할 일이라고 생각합니다.malloced 메모리에 0 터미네이터를 포함해야 합니다.이를 위해서는 다른 메모리 문자를 malloce로 해야 합니다.+1
.
언급URL : https://stackoverflow.com/questions/73593965/what-is-the-meaning-of-the-2-in-calculating-the-length-of-a-substring-as-right
반응형
'programing' 카테고리의 다른 글
마우스 이벤트를 절대 위치 요소에 통과시킵니다. (0) | 2022.09.08 |
---|---|
JSX에서 "export default"는 무엇을 합니까? (0) | 2022.09.08 |
여러 데이터베이스에 적합한 온라인 SQL 구문 검사기 (0) | 2022.09.08 |
MySQL에서 다음/이전 레코드를 가져오려면 어떻게 해야 합니까? (0) | 2022.09.08 |
루트 비밀번호를 null로 설정하는 방법 (0) | 2022.09.08 |