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 ...
随机推荐
- 十、TestNG分组测试
使用 groups 属性 package com.lc.tesgFenZu; import org.testng.annotations.AfterGroups; import org.testng. ...
- html+css一些简单案例:爱心点击,盒子模型,2d动画
canvas绘制爱心 效果预览 上代码 <!doctype html> <html> <head> <title>HTML5 Canvas爱心飘动动画特 ...
- [日常摸鱼]HDU3007Buried memory-最小圆覆盖
最小圆覆盖裸题 我求外接圆的方法比较奇怪-不过还是过掉了 #include<cstdio> #include<cmath> #include<cstdlib> #i ...
- 聊聊自学大数据flume中容易被人忽略的细节
前言:老刘不敢保证说的有多好,但绝对是非常良心地讲述自学大数据开发路上的一些经历和感悟,保证会讲述一些不同于别人技术博客的细节. 01 自学flume的细节 老刘现在想写点有自己特色的东西,讲讲自学 ...
- 关于 ReentrantLock 中锁 lock() 和解锁 unlock() 的底层原理浅析
关于 ReentrantLock 中锁 lock() 和解锁 unlock() 的底层原理浅析 如下代码,当我们在使用 ReentrantLock 进行加锁和解锁时,底层到底是如何帮助我们进行控制的啦 ...
- Attention & Transformer
Attention & Transformer seq2seq; attention; self-attention; transformer; 1 注意力机制在NLP上的发展 Seq2Seq ...
- Python 中日期函数
导入日期库 datetime import datetime # 或者from datetime import datetime ,date 字符串转datetime
- ext4和xfs文件系统的扩容和收缩
1. LVM逻辑卷管理 2. ext4文件系统 2.1 扩容CentOS6的根文件系统(ext4) 根文件系统在 /dev/VolGroup/lv_root 逻辑卷上,文件系统类型为ext4,大小为1 ...
- Dubbo服务引用源码解析③
上一章分析了服务暴露的源码,这一章继续分析服务引用的源码.在Dubbo中有两种引用方式:第一种是服务直连,第二种是基于注册中心进行引用.服务直连一般用在测试的场景下,线上更多的是基于注册中心的方式 ...
- 道高一丈,且看CWE4.2的新特性
摘要:CWE在今年2/24发布4.0,首次将硬件安全漏洞纳入了CWE中,6/25发布4.1, 8/20就发布了4.2. 1. 按照惯例,先说故事 我们先说下CWE的幕后老板--MITRE[1]. MI ...