/* * common.c * * Created on: 2020¦~5¤ë27¤é * Author: foluswen */ #include "Module_OcppBackend.h" void work(char s[]) // Delete space on start & end { int i,j; for(i=0;s[i]==' ';i++); // Search first non space for(j=0;s[i];)s[j++]=s[i++]; // Delete space in start for(i--;s[i]==' ';i--)s[i]='\0'; // Delete space in end } char* strchr(const char *p, int ch) { char c; c = ch; for (;; ++p) { if (*p == c) return ((char *)p); if (*p == '\0') return (NULL); } /* NOTREACHED */ return NULL; } void splitstring(char *src, const char *separator, char **dest,int *num) { char *pNext; int count = 0; if (src == NULL || strlen(src) == 0) return; if (separator == NULL || strlen(separator) == 0) return; pNext = (char *)strtok(src,separator); while(pNext != NULL) { *dest++ = pNext; ++count; pNext = (char *)strtok(NULL,separator); } *num = count; } char* stringtrim( char * s ) { char * p1 = s; char * p2 = s; while(*p1 != '\0') { while(*p1 == ' ' || *p1 == '\t' || *p1 == '\"' || *p1 == '\n' || *p1 == '}' || *p1 == '\r') { if(*p1 != ',') { p1 ++; } else { break; } } if(*p1 != ',') { * p2 ++ = *p1 ++; //printf("p2=%s\n",p2); } else { break; } } *p2 = '\0'; return (s); } char* stringtrimspace( char * s ) { char * p1 = s; char * p2 = s; while(*p1 != '\0') { while(*p1 == ' ') //while(*p1 == ' ' || *p1 == '\t' || *p1 == '\n' || *p1 == '\r') { p1 ++; } * p2 ++ = *p1 ++; //printf("p2=%s\n",p2); } *p2 = '\0'; return (s); } int DiffTimeb(struct timeb ST, struct timeb ET) { //return milli-second unsigned int StartTime,StopTime; StartTime=(unsigned int)ST.time; StopTime=(unsigned int)ET.time; return (StopTime-StartTime)*1000+ET.millitm-ST.millitm; } void trim(char *s) { int i=0, j, k, l=0; while((s[i]==' ')||(s[i]=='\t')||(s[i]=='\n')) i++; j = strlen(s)-1; while((s[j]==' ')||(s[j]=='\t')||(s[j]=='\n')) j--; if(i==0 && j==strlen(s)-1) { } else if(i==0) s[j+1] = '\0'; else { for(k=i; k<=j; k++) s[l++] = s[k]; s[l] = '\0'; } } int mystrcmp(char *p1,char *p2) { while(*p1==*p2) { if(*p1=='\0' || *p2=='\0') break; p1++; p2++; } if(*p1=='\0' && *p2=='\0') return(PASS); else return(FAIL); } void substr(char *dest, const char* src, unsigned int start, unsigned int cnt) { strncpy(dest, src + start, cnt); dest[cnt] = 0; } int strposs(char *source, char *substr, int idx) { char stack[strlen(source)]; int result=0; int count=0; while(count<=idx) { memset(stack,0,sizeof stack); strncpy(stack, source+result, strlen(source)-result); int loc = strcspn(stack, substr); if(loc>0) result += (loc+1); else result = -1; count++; } return result; } void getSubStr(char *dest, char* src, char *split, int idx) { int start = (strposs(src,",",idx)+1); int cnt = (strposs(src,",",idx+1)-2)-(strposs(src,",",idx)+1); strncpy(dest, src + start, cnt); dest[cnt] = 0; } void split(char **arr, char *str, const char *del) { char *s = strtok(str, del); while(s != NULL) { *arr++ = s; s = strtok(NULL, del); } } int strpos(char *source, char *substr, int skip) { char stack[strlen(source)]; strncpy(stack, source+skip, strlen(source)-skip); char *p = strstr(stack, substr); if (p) return p - stack+skip; return -1; } char* strtrim( char * s ) { char * p1 = s; char * p2 = s; while(*p1 != '\0') { while(*p1 == '\t' || *p1 == '\n' || *p1 == '\r') //while(*p1 == ' ' || *p1 == '\t' || *p1 == '\n' || *p1 == '\r') { p1 ++; } * p2 ++ = *p1 ++; //printf("p2=%s\n",p2); } *p2 = '\0'; return (s); } char* strtrimc( char * s ) { char * p1 = s; char * p2 = s; while(*p1 != '\0') { while(*p1 == ' ' || *p1 == '\t' || *p1 == '\"' || *p1 == '\n' || *p1 == '}' || *p1 == '\r') { if(*p1 != ',') { p1 ++; } else { break; } } if(*p1 != ',') { * p2 ++ = *p1 ++; //printf("p2=%s\n",p2); } else { break; } } *p2 = '\0'; return (s); } char* random_uuid(char* buf) { uuid_t uuid; uuid_generate(uuid); uuid_unparse(uuid, buf); return 0; }