char 배열에 대한 포인터를 가져 와서 사용자로부터 문자열을 읽고 문자열이 아닌 첫 번째 문자가 나타날 때까지 문자열 시작 부분의 모든 공백을 제거하려고했습니다. 마지막으로 공백없이 문자열의 복사본을 반환합니다. abcd
입력 문자열 abcd
포인터를 리턴한다 함수의 예strtok이 예상대로 작동하지 않습니다.
,
.
입력 123 123
의 경우 함수는 문자열 123 123
에 대한 포인터를 반환해야합니다. 이 기능은 다음과 같습니다
,
void read_RemoveSpace(char * str)/**read the rest of string**/
{
char tempRead[30];
fgets(tempRead,30,stdin);
char *ptr = strtok(tempRead, " "); /**remove spaces between command and other data**/
strcpy(str,ptr); /**copy the new string without the spaces.**/
}
그러나 예상대로 기능 strtok()
가 작동하지 않는 몇 가지 이유. 입력의 경우
:
123 456
함수는 공백없이 첫 번째 부분을 리턴 아닌 문자열의 나머지, 즉 그것은
123
어떤 제안이 가리키는?
** 귀하의 ** 질문 ** !? – StoryTeller
당신이 직면하고있는 문제는 무엇입니까? 어떻게 함수를 호출하고 있습니까? 정확히 str에 저장된 후 저장되는 것은 무엇입니까? – Vijay
'strtok_r()'이 예상대로 작동하지 않습니다. 아마도 여러분의 기대치가 맞지 않을 것입니다 ... –