내가 문자열 "텍스트", 캐럿 위치 "캐럿"이 다음 (공백으로 구분) 현재 단어를 찾으려면 말.가장 효율적인 방법은 문자 배열에서 현재 단어를 얻을 수
는나는 현재를하고 있어요 방법은 비효율적 인 것 같습니다 누군가가 그 일을하는 효율적인 방법이 있다면 궁금 해서요? "비효율적 인 것"으로
const char* text;
int caret;
int initpos;
int start;
int count = 0;
char word[256];
// text and caret values assigned here.
initpos = caret;
while(caret > 0 && text[caret] != ' ') // get start
{
caret--;
count++;
}
start = caret;
caret = initpos;
while(text[caret] && text[caret] != ' ') // get end
{
caret++;
count++;
}
word = strsub(text, start, count);
에 의해 종료 될 때, 당신은 배열 이름입니다 말씀을 할당 할 수 없습니다. – unwind
이 코드를 깨뜨리는 것은 어렵습니다. (@ unwind의 주석과 초기화되지 않은'캐럿 (catcht) '을 가정하고, 배열 범위를 벗어나서 걷는 것은 문제를 쉽게 게시하고 토론 할 수있는) - 당신은 모든 캐릭터를 앞뒤로보아야 만하고, 개인 캐릭터 검사보다 빠른 공간을 찾는 트릭을 찾는 것은 거의 불가능 해 보입니다. – sarnold
어쩌면 공백 이외에 가로 탭 등도 고려하고 싶을 것입니다. – Flinsch