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 ...
随机推荐
- 1.pipeline原理
redis基本语法:https://www.cnblogs.com/xiaonq/p/7919111.html redis四篇:https://www.cnblogs.com/xiaonq/categ ...
- MySQL PXC集群安装配置
1.关闭防火墙 [root@node04 ~]#systemctl disable firewalld [root@node04 ~]#systemctl stop firewalld [root@n ...
- 详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系
@ 目录 为什么要有相对跳转和绝对跳转? 在程序中只有相对跳转/绝对跳转是否可以? B(BL)和LDR指令具体怎么执行的? B(BL)和LDR跳转范围是如何规定的? 为什么要有相对跳转和绝对跳转? 顺 ...
- Hbase备份以及清表脚本
脚本主要是方便自己工作使用,服务器环境中配置了hbase相关环境变量 1.hbase备份脚本 #!/bin/bash tableList=("table1" "table ...
- 用Python批量裁取图,来获取文件夹中所有图片名
批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取) 功能是裁取图片中红色框的部分. 代码为: import sys from tkinter.tix import Tk from PIL im ...
- .netcore 微服务快速开发框架 Anno&Viper -分布式锁是个什么鬼
1.什么是锁 锁是为了解决多线程或者多进程资源竞争的问题. 同一进程的多个线程资源竞争可以用lock解决. lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区. 如果其他线 ...
- SSM框架实现多张图片和其他数据一起上传
一.SSM+Form 多张图片和其他数据一起上传, 1.导包: commons-fileupload-1.3.3.jar commons-io-2.4.jar 2.springmvc.xml 文件配置 ...
- Nginx压力测试问题
[root@aa~]# This is ApacheBench, Version 2.3 <Revision:655654Revision:655654> Copyright 1996 A ...
- Windows10搭建本地ftp服务器
首先要有一个win10专业版的操作系统,连接上互联网... 一.首先打开控制面板选择程序,再选择"启用或关闭windows功能" 二.在"Windows功能"中 ...
- java内置锁实现锁住代码块方案(同一个对象或锁住整个类.class)
我们看一个例子: class Demo { public synchronized void test() { System.out.println("test方法开始执行,当前线程为:&q ...