ISO8601 타임 스탬프에서 시간 섹션을 추출하려고합니다.타임 스탬프에서 시간 추출 중
다음의 기표에서 "0001-01-01T17:45:33"
이 부분을 추출하고 싶습니다 "17:45:33"
.
ISO8601 타임 스탬프에서 시간 섹션을 추출하려고합니다.타임 스탬프에서 시간 추출 중
다음의 기표에서 "0001-01-01T17:45:33"
이 부분을 추출하고 싶습니다 "17:45:33"
.
몇 가지 옵션이 있습니다.
변수 배열에 string
이라는 문자가 있다고 가정 해 보겠습니다. 더 복잡 경우
#define TIMEWIDTH 8
#include <stdio.h>
#include <string.h>
int main() {
const char string[] = {"0001-01-01T17:45:33\0"};
unsigned int strlength = strlen(string);
char temp[TIMEWIDTH + 1]; // add one for null character
printf("%s\n", string);
strncpy(temp, string + strlength - TIMEWIDTH, TIMEWIDTH + 1); // another + 1 for the null char
printf("%s\n", temp);
}
는 당신이 좀 더 분석을 할 필요가 :
지금 당신은 항상 문자열의 마지막에있을 것입니다 시간이 당신이 단지 수있는 아주 쉬운 그것은`그것을 알고있는 경우 그것을 찾아라. 수동으로 또는 sscanf()
또는 다른 것과 같은 다른 사용 가능한 도구를 사용하십시오. sscanfs()
의 너비를 지정하십시오.
http://www.tutorialspoint.com/c_standard_library/c_function_sscanf.htm
T
는 시간의 시작을 나타내는 경우는 strchr과 함께 찾아보실 수 있습니다 : 그것은 단지의 경우 정말 ... 입력이 얼마나 변수에 따라 달라집니다
#include <stdio.h>
#include <string.h>
int main() {
const char string[] = {"0001-01-01T17:45:33\0"};
char *temp;
temp = strchr(string, 'T') + 1;
printf("%s\n", temp);
}
단 하나의 예제 중 하나를 사용할 수 있습니다. 마지막 하나는 더 효율적입니다.
당신은 그것이 ISO 8601 타임 스탬프임을 나타 냈습니다. 그럼 난 그냥 두 번째 방법을 사용합니다.
어디로 추출 하시겠습니까? 변수와 함수는 어떻게 선언됩니까? –
일부 문자열에서 추출한 다음 strstr()을 사용할 수는 있지만 실제로 원하는 것이 명확하지 않은 경우? – Gopi
this_part = strchr (this_string, 'T') +1; – BLUEPIXY