函数题:

  6-1 查找子串:

裁判测试程序样例:

#include <stdio.h>
#define MAXS 30 char *search(char *s, char *t);
void ReadString( char s[] ); /* 裁判提供,细节不表 */ int main()
{
char s[MAXS], t[MAXS], *pos; ReadString(s);
ReadString(t);
pos = search(s, t);
if ( pos != NULL )
printf("%d\n", pos - s);
else
printf("-1\n"); return 0;
} /* 你的代码将被嵌在这里 */

输入样例1:

The C Programming Language
ram

输出样例1:

10

输入样例2:

The C Programming Language
bored

输出样例:

-1

代码:

char *search(char *s, char *t)
{
int i=0,j=1;
while(s[i]!='\0')
{
if(s[i] == t[0])
{
j=1;
while(s[i+j] == t[j] && t[j] != '\0')
{
j++;
}
if(t[j]=='\0')
return s+i;
}
i++;
}
return NULL;
}

编程题:

  7-1 删除字符串中的子串:

输入样例:

Tomcat is a male ccatat
cat

输出样例:

Tom is a male 

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char s1[81]={0},s2[81]={0},s3[81];
gets(s1);
gets(s2);//gets()函数读取一行输入,遇到会车结束
while(strstr(s1, s2)!=NULL)//strstr用于判断s1串中是否含有s2串
{
int len1=strlen(s1);
int len2=strlen(s2);
strcpy(s3, strstr(s1, s2));//将目标串提取出来丙拷贝到s3中
int len3=strlen(s3);
strcpy(s1+len1-len3, s3+len2);
}
int l=strlen(s1);//遍历输出,其实可以用puts()函数,,,
for(int i=0;i<l;i++)
{
printf("%c",s1[i]);
}
return 0;
}

  7-2 字符串循环左移:

输入样例:

Hello World!
2

输出样例:

llo World!He

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char s1[101]={0}, s2[101]={0};
int index;
gets(s1);
scanf("%d", &index);
if(index>strlen(s1))//判断 :index大于长度的话,取余
{
index = index%strlen(s1);
}
int len = strlen(s1);
int j=0;
for(int i=index;i<len;i++,j++)
{
s2[j] = s1[i];//先将左移部分以外的部分依次填入型字符输出中,
}
//j-=1;
for(int i=0;i<index;i++,j++)
{
s2[j] = s1[i];//再讲左移部分补到结尾
}
//s2[j]='\0';
puts(s2);
return 0;
}

  7-3 最长对称子串:

输入样例:

Is PAT&TAP symmetric?

输出样例:

11

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char s1[1001]={0},s2[1001]={0};
int len;
int max=0;
gets(s1);
len = strlen(s1);
int k;
for(int i=0;i<len;i++)//遍历
{
for(int j=0;j<len-i;j++)
{
for(k=0;k<(i+1)/2;k++)//对半进行对比
{
if(s1[j+k] != s1[j+i-k])//不想等就退出
break;
}
if(k<(i+1)/2)//小于则继续
continue;
else
{
max=i+1;
}
}
}
printf("%d\n", max);
return 0;
}

SDUST数据结构 - chap4 串的更多相关文章

  1. hdu 3336:Count the string(数据结构,串,KMP算法)

    Count the string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. C#数据结构之串

    串(string)是n(n>=0)个字符组成的有限序列. 由于串中的字符都是连续存储的,在C#中有恒定不变的特性.一经创建就保持不变. 为了区别C#中的string,因此以stringDS类模拟 ...

  3. 【Java】 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)

    本文根据<大话数据结构>一书,实现了Java版的串的朴素模式匹配算法.KMP模式匹配算法.KMP模式匹配算法的改进算法. 1.朴素的模式匹配算法 为主串和子串分别定义指针i,j. (1)当 ...

  4. javascript实现数据结构:串--定长顺序存储表示以及kmp算法实现

    串(string)(或字符串)是由零个或多个字符组成的有限序列.串中字符的数目称为串的长度.零个字符的串称为空串(null string),它的长度为零. 串中任意个连续的字符组成的子序列称为该串的子 ...

  5. javascript实现数据结构:串--堆分配存储表示

    堆分配存储表示 这种存储表示的特点是,仍以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中动态分配而得. 结构图: 实现: function HString(){ this. ...

  6. 数据结构-模式匹配串算法(KMP)

    #include<cstdio> #include<iostream> #include<string> #include<cstring> #incl ...

  7. 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)

    --喜欢记得关注我哟[shoshana]-- 目录 1.朴素的模式匹配算法2.KMP模式匹配算法 2.1 KMP模式匹配算法的主体思路 2.2 next[]的定义与求解 2.3 KMP完整代码 2.4 ...

  8. SDUST数据结构 - 19级期末考试

    判断题: 选择题: 函数题: 6-1 统计二叉树叶子结点个数: 题目: 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typ ...

  9. SDUST数据结构 - chap9 排序

    判断题: 选择题: 编程题: 7-1 排序: 输入样例: 11 4 981 10 -17 0 -20 29 50 8 43 -5 输出样例: -20 -17 -5 0 4 8 10 29 43 50 ...

随机推荐

  1. centos 7 配置 mysql 5.7 主从复制

    centos 7 配置 mysql 5.7 主从复制 主库:192.168.12.3 从库:192.168.12.2 1. 主库从库所在服务器关闭防火墙Systemctl stop firewalld ...

  2. Git 工作原理以及常用命令操作

    GIT工作原理 要了解GIT工作原理,先了解GIT的这几块区域: 工作区域划分 工作区:指的是本地工作空间,如果刚拉取下来的代码,没有修改的内容,这块区域是空白的 (modified-已修改状态) 暂 ...

  3. v-text、v-html、v-pre

    v-text 用于将数据填充到标签中,作用于插值表达式类似,但是相对于直接插值是没有闪动问题的 v-html 用于将HTML片段填充到标签中,但是可能有安全问题(易被跨域脚本攻击[XSS攻击]) v- ...

  4. robotframework中的参数展开

    robot调用关键字传参的方式是用分隔符分开不同参数,如 keyword arg1 arg2 arg3 arg4 当参数中传入了使用@符号的列表变量时,@符号会将列表展开: @{list1}= Cre ...

  5. (九)rmdir和rm -r删除目录命令

    一.命令描述与格式 rmdir用于删除空目录 命令格式 :rmdir   [选项]   目录名 选项: --ignore-fail-on-non-empty   :忽略任何因目录仍有数据而造成的错误 ...

  6. npm 各种常用命令

    全局删除 node-gyp npm -g uninstall node-gyp 再次安装依赖 npm install 更改包内容后重建 npm rebuild 清除缓存 npm cache clean ...

  7. Pygame的简单总结

    Pygame learn from mooc 私货:在调用函数时,可以 1.import tkinter (不过在使用时还要加前缀如tkinter.Tk()) 2.import tkinter as ...

  8. UICamera 编辑器与移动设备下的Find异常

    某次出包后,在移动设备下,发现所有的UIDrag和一些UIHUD组件都失效了,看了看Editor下是正常的,后面就做了一系列检查措施来排除问题所在. 1.看了下log日志里是否有相关报错异常,结果毫无 ...

  9. Java学习_注解

    使用注解 注解是放在Java源码的类.方法.字段.参数前的一种特殊"注释". 1 // this is a component: 2 @Resource("hello&q ...

  10. sql字段拆分 ,连表子查询获取值

    1.连表子查询获取值 select bas.name,bas.id_card_num,bas.mobil_no,gender,bas.birthday,bas.height,bas.weight,pr ...