一基础知识题 简述下列每对术语的区别 空串和空白串串常量和串变量主串和子串静态分配的顺序串和动态分配的顺序串目标串和模式串有效位移和无效位移 假设有如下的串说明 char s[]=StocktomCA s[]=March s[] *p; ()在执行如下的每个语句后p的值是什么? p=stchr(st); p=strchr(s); p=strchr(s); ()在执行下列语句后s的值是什么? strcpy(ss); strcat(s); strcat(ss); ()调用函数strcmp(ss)的返回值是什么? ()调用函数strcmp(&s[]ton)的返回值是什么? ()调用函数stlen(strcat(ss))的返回值是什么? 设T[n]=adaabaabcaabaaP[m]=aab当用模式串匹配目标串T时请给出所有的有效位移算法NaiveStrMatch(TP)返回的位移是哪一个位移 二算法设计题 利用C的库函数strlenstrcpy和strcat写一算法void StrInsert(char *S char *T int i)将串T插入到串S的第i个位置上若i大于S的长度则插入不执行 利用C的库函数strlen 和strcpy(或strncpy)写一算法void StrDelete(char *Sint i int m)删去串S中从位置i开始的连续m个字符若i≥strlen(S)则没有字符被删除若i+m≥strlen(S)则将S中从位置i开始直至末尾的字符均删去 以HString为存储表示写一个求子串的算法 一个文本串可用事先给定的字母映射表进行加密例如设字母映射表为 a b c d e f g h i j k l m n o p q r s t u v w x y z n g z q t c o b m u h e l k p d a w x f y i v r s j 则字符串encrypt被加密为tkzwsdf试写一算法将输入的文本串进行加密后输出另写一算法将输入的已加密的文本串进行解密后输出 写一算法void StrReplace(char *T char *P char *S)将T中首次出现的子串P替换为串S注意S和P的长度不一定相等可以使用已有的串操作 将NaveStrMatch改写为输出目标串中所有与模式串匹配的有效位移 * 利用的结果写一算法void StrReplaceAll(char *T char *P char *S)将T中出现的所有与P相等的不重叠子串替换为S这里S和P的长度不一定相等 若S和T是用结点大小为的单链表存储的两个串试设计一个算法找出S中第一个不在T中出现的字符 |