ǰÌìдһ¸öС³ÌÐò, ͻȻ·¢ÏÖÆäʵżµÄCѧµÄ²»ÔõôÑù°¡£¬ºÃ¶àº¯Êý¶¼²»¼ÇµÃ£¬ÔÚÍøÉÏËѵ½µÄ¶¼ÊÇЩÂÒÆß°ËÔãµÄ£¬Ã»ÓÐÔÐÍ£¬ÓÃÆðÀ´²»·ÅÐÄ£¬ÓãÅÎÄËÑ£¬Ëѵ½ÕæÕýµÄBible——
The GNU C Library Manual
ÕâÀïÃæÌ«È«ÁË£¬Ö»ÊÇÓÐÒ»µã²»Ì«ºÃ£¬£ÅÎĵ쬶ÁÆðÀ´ÓеãÂý£¬¸Ð¾õÓеãÀË·Ñʱ¼ä
ÓãÃдÁ˶ÎС³ÌÐò°ÑÒ»¸öÎå±ÊÂëÎı¾Îĵµ×ªÎªSQLite3¸ñʽµÄÊý¾Ý¿â
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h>
#include <sqlite3.h>
int main(int argc, char** argv)
{
sqlite3 *db = NULL;
char *zErrMsg = 0;
int rc = 0;
rc = sqlite3_open("wubi.db",&db);
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
char *sql, insert[256];
sql = "CREATE TABLE word (cn VARCHAR(3) NOT NULL, first VARCHAR(4) NOT NULL, sec VARCHAR(4), pri SMALLINT DEFAULT 0)";
sqlite3_exec( db, sql, 0, 0, &zErrMsg );
sql = "CREATE TABLE wordgroup (cn VARCHAR(12) NOT NULL, first VARCHAR(4) NOT NULL, ind SMALLINT DEFAULT 0)";
sqlite3_exec( db, sql, 0, 0, &zErrMsg );
regex_t reg ;
regmatch_t pm[1];
char *pattern;
char buf[50];
const size_t nmatch = 1;
//È¡µÃÕýÔò±í´ïʽ£¬²¢½øÐбàÒë
pattern = argv[1];
int result = regcomp(®, pattern, REG_EXTENDED);
//ÖðÐжÁÈ¡Îļþ
while( fgets(buf, sizeof(buf), stdin) )
{
int e = strlen(buf);
if ( e > 0 && buf[e-1] == '\n' )
buf[e-1] = 0;
result = regexec( ®, buf, nmatch, pm, REG_NOTBOL );
if ( result == REG_NOMATCH )
continue;
int i = 0;
for ( i = 0; i < nmatch && pm[i].rm_so != -1; ++i )
{
int code = e - pm[i].rm_so;
printf("×Ö·û\"%s\"µÄ³¤¶ÈΪ:%d\n",buf, e);
char *c = NULL, *a = NULL, *b = NULL , *word = NULL ;
word = (char *)malloc( 50*sizeof(char) );
c = (char *)malloc( 50*sizeof(char) );
a = (char *)malloc( 4*sizeof(char) );
b = (char *)malloc( 4*sizeof(char) );
//ȡһ¸ö×Ö·û´®µÄ×Ó×Ö·û£¬Ç°°ë²¿
strncpy( word, buf, pm[i].r
¼ÙÉèÎÒÃÇʹÓÃmysql_real_queryÖ´ÐÐÁËÒ»ÌõsqlÓï¾äÖ®ºó£¬·µ»ØÖµÎª·Ç0Öµ£¬´ó¼Ò¶¼ÖªµÀÕâÊÇÕâÌõÓï¾äÖ´Ðгö´í£¬µ«ÊÇÎÒÃÇÏë
ÁË½âµØ¸üÏêϸµãµÄ»°£¬¾¿¾¹ÊÇʲôÔÒòµ¼ÖÂÁËÕâ¸ö´íÎóÄØ£¿Õâʱºò¾ÍµÃÓÃÉÏmysqlÌṩµÄÁíÍâÒ»¸öAPI£ºmysql_errno¡£
mysql_errno»áÌṩ×î½üÒ»´Îµ÷ÓõÄC API³ö´íµÄÐÅÏ¢£¨²»¼ûµÃÿ¸öAPI¶¼»á¶ÔÕâ¸öerrno½øÐÐÉèÖ ......