SDUST数据结构 - chap4 串
函数题:
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 串的更多相关文章
- hdu 3336:Count the string(数据结构,串,KMP算法)
Count the string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- C#数据结构之串
串(string)是n(n>=0)个字符组成的有限序列. 由于串中的字符都是连续存储的,在C#中有恒定不变的特性.一经创建就保持不变. 为了区别C#中的string,因此以stringDS类模拟 ...
- 【Java】 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)
本文根据<大话数据结构>一书,实现了Java版的串的朴素模式匹配算法.KMP模式匹配算法.KMP模式匹配算法的改进算法. 1.朴素的模式匹配算法 为主串和子串分别定义指针i,j. (1)当 ...
- javascript实现数据结构:串--定长顺序存储表示以及kmp算法实现
串(string)(或字符串)是由零个或多个字符组成的有限序列.串中字符的数目称为串的长度.零个字符的串称为空串(null string),它的长度为零. 串中任意个连续的字符组成的子序列称为该串的子 ...
- javascript实现数据结构:串--堆分配存储表示
堆分配存储表示 这种存储表示的特点是,仍以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中动态分配而得. 结构图: 实现: function HString(){ this. ...
- 数据结构-模式匹配串算法(KMP)
#include<cstdio> #include<iostream> #include<string> #include<cstring> #incl ...
- 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)
--喜欢记得关注我哟[shoshana]-- 目录 1.朴素的模式匹配算法2.KMP模式匹配算法 2.1 KMP模式匹配算法的主体思路 2.2 next[]的定义与求解 2.3 KMP完整代码 2.4 ...
- SDUST数据结构 - 19级期末考试
判断题: 选择题: 函数题: 6-1 统计二叉树叶子结点个数: 题目: 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typ ...
- 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 ...
随机推荐
- mycat启动失败
1.问题 使用mycat配置主从读写分离,启动mycat报错信息如下: STATUS | wrapper | 2020/06/17 17:00:11 | --> Wrapper Started ...
- Kubernetes 最佳安全实践指南
原文链接:https://fuckcloudnative.io/posts/security-best-practices-for-kubernetes-pods/ 对于大部分 Kubernetes ...
- SpringBoot从入门到精通教程(一)
写在前面的话: 在很早之前,记笔记时候,我就一直在思考一个问题,我记笔记是为了什么,我一直想不明白 ,后面发现技术跟新迭代的速度实在太快了,笔记刚纪完,技术又跟新了,于是我想了想干脆边写博客,边记笔记 ...
- RabbitMQException com.rabbitmq.client.ShutdownSignalException: connection error; protocol meth
异常1 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ...
- Django + FastDFS (分布式远程服务器存储文件)
之前随笔过一篇Docker来搭建分布式文件系统FastDfs就跳过了 https://www.cnblogs.com/xcsg/p/10901461.html FastDFS的Python (dja ...
- 使用shell发送邮件,方便快捷
目录 前言 鉴赏代码 总结 前言 很多时候我们需要发送邮件,比如定时任务,比如邮件验证码等等. 各大编程语言都可以实现发送邮件功能,但还是太麻烦了,所以通过tcpdump抓包发现smtp发送邮件原理还 ...
- iOS崩溃治理--开篇
去年我开始负责iOS崩溃治理的工作,从原来的万分之五崩溃率,一直到现在的万分之一左右的崩溃率,期间踩了很多坑,因此想和大家分享一下,希望能对大家有所帮助,也欢迎大家私信交流. 如果你打算开始治理崩溃的 ...
- [leetcode]543. Diameter of Binary Tree二叉树的直径
题目中的直径定义为: 任意两个节点的最远距离 没想出来,看的答案 思路是:diameter = max(左子树diameter,右子树diameter,(左子树深度+右子树深度+1)) 遍历并更新结果 ...
- HTML表格样式
一.表格的表头 1 <html> 2 3 <body> 4 5 <h4>表头:</h4> 6 <table border="1" ...
- 详解CSS布局
CSS页面布局允许我们拾取网页中的元素,并且控制它们相对正常布局流.周边元素.父容器或者主视口/窗口的位置.主要对文档流的改变进行布局.假设你已经掌握了CSS的选择器.属性和值,并且可能对布局有一定了 ...