void UARTReceiverLogger::logMessage(string message, sender who) { char timeStamp[100]; time_t clk = time(NULL); sprintf(timeStamp, "Log_time: %s, sender: %i, Message: ", ctime(&clk), who); string prestr(timeStamp); message = prestr + message; ofstream log_file(m_FileName.c_str(), ios_base::out | ios_base::app ); log_file << message << endl; }
int KMPmatch(char *p, char *s) { if (!p || !s) return -1; unsigned int si = 0; //string index unsigned int ml = 0; //matched length unsigned int pl = strlen(p); //pattren length unsigned int sl = strlen(s); //pattren length int *pre = new int[pl]; //contain prefix num prestr(p, pre, pl); while (si < sl) { if (p[ml] != s[si]) { if (ml == 0) { si += 1; } else { ml = pre[ml - 1]; } } else { si += 1; ml += 1; if (ml == pl) { return si - pl; /*count += 1; ml = 0; std::cout << "match index: " << si - pl << std::endl;*/ } } } delete pre; return 0; }