mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
init
This commit is contained in:
parent
84c5a2db67
commit
12ac1c9a6b
2
.gitignore
vendored
2
.gitignore
vendored
@ -6,3 +6,5 @@ tags
|
|||||||
*.d
|
*.d
|
||||||
*.ut
|
*.ut
|
||||||
log
|
log
|
||||||
|
main
|
||||||
|
cppcommon/cmlib.a
|
||||||
|
46
Makefile
Normal file
46
Makefile
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
CC = g++
|
||||||
|
CCOPT = -Wall -c
|
||||||
|
LINK = g++
|
||||||
|
LINKOPT =
|
||||||
|
PACKA = ar
|
||||||
|
PARCAOPT = rc
|
||||||
|
DOLINK = $(LINK) $(LINKOPT) -o $@ $^
|
||||||
|
SOURCES := $(wildcard *.cpp)
|
||||||
|
OBJS := $(patsubst %.cpp,%.o,$(SOURCES))
|
||||||
|
|
||||||
|
CMDIR = ./cppcommon/
|
||||||
|
CMLIB = $(CMDIR)cmlib.a
|
||||||
|
|
||||||
|
|
||||||
|
# remove the objs after compilation
|
||||||
|
.INTERMEDIATE:
|
||||||
|
.PHONY: clean
|
||||||
|
|
||||||
|
# This is a suffix rule
|
||||||
|
#.c.o:
|
||||||
|
%.o: %.cpp
|
||||||
|
$(CC) $(CCOPT) $<
|
||||||
|
|
||||||
|
# Main Targets
|
||||||
|
all: main
|
||||||
|
|
||||||
|
|
||||||
|
main: $(OBJS) $(CMLIB)
|
||||||
|
$(DOLINK)
|
||||||
|
|
||||||
|
$(CMLIB): $(CMDIR)
|
||||||
|
cd $(CMDIR) && $(MAKE)
|
||||||
|
|
||||||
|
#unit test
|
||||||
|
Trie.ut: Trie.cpp Trie.h $(CMLIB)
|
||||||
|
g++ -o $@ $< -DTRIE_UT $(CMLIB)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o *.ut $(CMLIB) main
|
||||||
|
|
||||||
|
sinclude $(SOURCES:.cpp=.d)
|
||||||
|
%.d:%.cpp
|
||||||
|
@set -e; rm -f $@; \
|
||||||
|
$(CC) -MM $< > $@.$$$$; \
|
||||||
|
sed 's,\($*\).o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
||||||
|
rm -f $@.$$$$
|
49
Trie.cpp
Normal file
49
Trie.cpp
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#include "Trie.h"
|
||||||
|
|
||||||
|
namespace CppJieba
|
||||||
|
{
|
||||||
|
Trie::Trie()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Trie::~Trie()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Trie::init(const char* const filepath)
|
||||||
|
{
|
||||||
|
ifstream ifile(filepath);
|
||||||
|
string line;
|
||||||
|
vector<string> vecBuf;
|
||||||
|
while(getline(ifile, line))
|
||||||
|
{
|
||||||
|
vecBuf.clear();
|
||||||
|
splitStr(line, vecBuf, " ");
|
||||||
|
PRINT_VECTOR(vecBuf);
|
||||||
|
getchar();
|
||||||
|
uint16_t strbuf[1024];
|
||||||
|
|
||||||
|
size_t unilen = utf8ToUnicode(line.c_str(), line.size(), strbuf);
|
||||||
|
for(int i = 0; i < unilen; i++)
|
||||||
|
{
|
||||||
|
// printf("%x\n", strbuf[i]);
|
||||||
|
}
|
||||||
|
char utf8str[512]={0};
|
||||||
|
unicodeToUtf8(strbuf, unilen, utf8str);
|
||||||
|
//cout<<strlen(utf8str);
|
||||||
|
cout<<utf8str<<endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TRIE_UT
|
||||||
|
using namespace CppJieba;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Trie trie;
|
||||||
|
trie.init();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
23
Trie.h
Normal file
23
Trie.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef TRIE_H
|
||||||
|
#define TRIE_H
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include "cppcommon/str_functs.h"
|
||||||
|
#include "cppcommon/vec_functs.h"
|
||||||
|
#include "globals.h"
|
||||||
|
|
||||||
|
namespace CppJieba
|
||||||
|
{
|
||||||
|
using namespace CPPCOMMON;
|
||||||
|
using namespace std;
|
||||||
|
class Trie
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Trie();
|
||||||
|
~Trie();
|
||||||
|
public:
|
||||||
|
bool init(const char* const filepath = DICT_FILE_PATH);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
6
globals.h
Normal file
6
globals.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef GLOBALS_H
|
||||||
|
#define GLOBALS_H
|
||||||
|
|
||||||
|
const char * const DICT_FILE_PATH = "dict.txt";
|
||||||
|
|
||||||
|
#endif
|
29
main.cpp
Normal file
29
main.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <iconv.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <fstream>
|
||||||
|
#include <memory.h>
|
||||||
|
#include "cppcommon/str_functs.h"
|
||||||
|
using namespace std;
|
||||||
|
using namespace CPPCOMMON;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
ifstream ifile("dict.txt");
|
||||||
|
string line;
|
||||||
|
while(getline(ifile, line))
|
||||||
|
{
|
||||||
|
uint16_t strbuf[1024];
|
||||||
|
|
||||||
|
size_t unilen = utf8ToUnicode(line.c_str(), line.size(), strbuf);
|
||||||
|
for(int i = 0; i < unilen; i++)
|
||||||
|
{
|
||||||
|
// printf("%x\n", strbuf[i]);
|
||||||
|
}
|
||||||
|
char utf8str[512]={0};
|
||||||
|
unicodeToUtf8(strbuf, unilen, utf8str);
|
||||||
|
//cout<<strlen(utf8str);
|
||||||
|
cout<<utf8str<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user