20210422

回顾 | GS2-C1-660-121~130 | Linux系统编程 | 数据结构-串(三)| 田静语法C5

Table of Contents

回顾

恋词复习

GS2-C1-660-121~130

今天做了10道第一章的选择题,总体来说选择题对概念的考察性很强。看笔记吧。

Linux系统编程

上课还是听了课记录一些东西把。

函数原型:int sprintf(char *str, const cahr *format...)
功能:按照format中指定的格式,使用...中的数据组装字符串存入到str
@str:用于存储组装好的字符串
@format:组装字符串的格式。

看个例子:

#include <stdio.h>
//...
typedef struct student
{
char sno[16];
char sname[16];
char sex[4];
int age;
}stu_t;
stu_t stus3[]=
{
[0] = {'1','zhangshan','F',18};
[1] = {'2','lisi','M',19};
[2] = {'3','wangwu','F',16},
};
char *errmsg = NULL;
const char *format = "insert into student values('%s','%s','%s','%d');";
char insert_sql[128] = "";
unsigned int i;
for(i = 0; i < 3; ++i)
{
//1.组装insert_sql
memset(insert_sql,0,sizeof(insert_sql));
sprintf(insert_sql,format,stus[i].sno,stu[i].sname,stu[i].sex,stu[i].age);
//2.执行insert_sql
if(sqlite3_exec(ppdb,insert_sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
perror("sqlite insert error");
sqlite3_close(ppdb);
return -1;
}
}
sqlite3_close(ppdb);
}

数据结构-串(三)

求解next数组

  1. T="abcdex"T="abcdex"
j 123456
模式串T abcex
next[j] 011111
void getNext (Str substr, int next[])
{
int j= 1,t;
next [1] = 0;
while(j < substr.length)
{
if (substr.ch [j] == substr.ch[t])
{
next[j+1] = t+1;
++t;
++j;
}
else
t = next[t];
}
}

KMP算法代码

int KMP(Str str, Str substr, int next[])1
{
    int i=1,j=1;
    while(i <= str.length && j <= substr.length)
    {
        if(j-=0 || str.ch[i] == substr.ch [j])
        {
            ++i;
            ++j;
        }
        else
        {
            j=next[j];
        }
    }
    if(j > substr.length)
        return i-substr.length;
    else
        return 0;
}

田静语法C5-特殊句式

倒装

只需要掌握:主谓倒装。主谓倒装又分为全部倒装和部分倒装

强调

除了形容词和动词其他都可以强调。

虚拟

所谓“虚拟”只是谓语动词的特殊变化,通过把谓语动词“变态”(改变时态),即可表达虚拟。