문자열을 파싱하는 데이 문제가 있습니다. 어쩌면 도움이 될 수 있습니다.문자열을 구문 분석하면 가비지가 인쇄됩니다.
나는 C 필드가 아니므로, 내가하는 바보 같은 일에 참을성있게 노력하십시오.
I이있다 :
#include <stdio.h>
#include <string.h>
char DataIn[65] = "WV,000B,404C494748543B.";
int main()
{
char *p = DataIn;
puts(DataIn);
for (int count = 0;count<2 ; ++count) {
p = strstr(p, ",");
if (!p)
break;
p++;
}
char *endPointer = strchr(p, '.');
*endPointer = '\0';
puts(p);
}
I이 예에서 원하는 출력된다 : 404C494748543B
(서로 다른 길이를 가질 수있다).
내가 p
를 인쇄
404C494748543B
X
@LIGHT;
��
@LIGHT;
��03
.
데이터를 추출하는 방식에 문제가 있습니까?
어떤 입력이 가비지를 생성합니까? –
[최소, 완료 및 확인 가능한 예제] (http://stackoverflow.com/help/mcve)를 게시하지 않는 이유는 무엇입니까? – MikeCAT
'p = strstr (p, ",");'->'p = strstr (prev, ",");'... print prev. – BLUEPIXY