每日一练算法题(顺序串的基本操作)

devtools/2024/10/18 3:11:15/

假定下面所有的串均为顺序串,参数ch、ch1和ch2均是字符型,编写算法依次实现下列操作。

① 将串r中所有值为ch1的字符换成ch2的字符。

② 将串r中所有字符按照相反的次序仍存放在r中。

③ 从串r中删除其值等于ch的所有字符。

④ 从串r1中第index个字符起求出首次与串r2相同的子串的起始位置。
输入格式:

第一行:r

第二行:r1

第三行:r2

第四行:ch ch1 ch2

第五行:index

输出格式:

第一行:操作①结果

第二行:操作②结果

第三行:操作③结果

第四行:操作④结果(不存在输出-1)

函数接口定义:

void StrReplaceCh(SString *S, char ch1, char ch2);  /*字符替换函数*/
void StrRreverse(SString *S);   /*串逆置函数*/
void StrDeleteCh(SString *S, char ch);  /*在串S中删除值为ch的字符*/
int StrIndex(SString *S, int index, SString T);  /*求串T在串S中的位置*/

顺序串类型定义如下:

#define MAXLEN 50   //字符串的最大长度
typedef struct{char ch[MAXLEN];  //下标从0开始存放int  len;
}SString;

裁判测试程序样例:

#include<stdio.h>
#include <stdlib.h>
#include <string.h>#define MAXLEN 50   //字符串的最大长度
typedef struct{char ch[MAXLEN];int  len;
}SString;void StrReplaceCh(SString *S, char ch1, char ch2);  /*字符替换函数*/
void StrRreverse(SString *S);   /*串逆置函数*/
void StrDeleteCh(SString *S, char ch);  /*在串S中删除值为ch的字符*/
int StrIndex(SString *S, int pos, SString T);  /*求串T在串S中的位置*/void StrInit(SString *s){s->len=0;
}/*将字符串常量tval的值赋给串s */
void StrAssign(SString *s, char *r){    int i=0;while (r[i]!='\0'){s->ch[i]=r[i];i++;}s->len=i;
}void main()
{SString s, s1, s2;char r[50], r1[50], r2[50];char ch, ch1, ch2;int i, loc, index;gets(r);  gets(r1);  gets(r2);scanf("%c %c %c", &ch, &ch1, &ch2); StrAssign(&s, r);/*操作1:字符替换*/StrReplaceCh(&s, ch1, ch2);for(i=0;i<s.len;i++)printf("%c", s.ch[i]);printf("\n");/*操作2:串逆置*/StrRreverse(&s);for(i=0;i<s.len;i++)printf("%c", s.ch[i]);printf("\n");/*操作3:串删除*/StrDeleteCh(&s, ch);for(i=0;i<s.len;i++)printf("%c", s.ch[i]);printf("\n");/*操作4:串定位匹配*/StrAssign(&s1, r1); StrAssign(&s2, r2);scanf("%d", &index); loc=StrIndex(&s1, index, s2);printf("%d\n",loc);}/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

abcaabcaaabca
abcaabcaaabca
aabc
a b c
0

输出样例:

在这里给出相应的输出。例如:

accaaccaaacca
accaaaccaacca
cccccc
3
void StrReplaceCh(SString *S, char ch1, char ch2) {for (int i = 0; i < S->len; i++) {if (S->ch[i] == ch1) {S->ch[i] = ch2;}}
}
void StrRreverse(SString *S) {for (int i = 0; i < S->len / 2; i++) {char temp = S->ch[i];S->ch[i] = S->ch[S->len - 1 - i];S->ch[S->len - 1 - i] = temp;}
}
void StrDeleteCh(SString *S, char ch) {int j = 0;for (int i = 0; i < S->len; i++) {if (S->ch[i] != ch) {S->ch[j++] = S->ch[i];}}S->len = j;S->ch[j] = '\0';
}
int StrIndex(SString *S, int index, SString T) {if (index < 0 || index >= S->len) {return -1;}for (int i = index; i <= S->len - T.len; i++) {int j = 0;while (j < T.len && S->ch[i + j] == T.ch[j]) {j++;}if (j == T.len) {return i;}}return -1;
}

http://www.ppmy.cn/devtools/126623.html

相关文章

PhpStudy的安装及使用教程----适合入门小白

一&#xff1a;简介 phpStudy是一个PHP调试环境的程序集成包。 该程序包集成最新的ApachePHPMySQLphpMyAdminZendOptimizer&#xff0c;一次性安装&#xff0c;无须配置即可使用&#xff0c;是非常方便、好用的PHP调试环境。 该程序不仅包括PHP调试环境&#xff0c;还包括了…

音乐播放器项目专栏介绍​

1.简介 本专栏使用Qt QWidget作为显示界面&#xff0c;你将会学习到以下内容&#xff1a; 1.大量ui美化的实例。 2.各种复杂ui布局。 3.常见显示效果实现。 4.大量QSS实例。 5.Qt音频播放&#xff0c;音乐歌词文件加载&#xff0c;展示。 6.播放器界面换肤。 相信学习了本专栏…

深度学习 nd.random.normal()

nd.random.normal() 是 MXNet 中用于生成符合正态分布&#xff08;高斯分布&#xff09;随机数的函数。它允许用户指定均值、标准差以及生成的随机数的形状。 函数签名 mx.nd.random.normal(loc0.0, scale1.0, shape(1,)) 参数 loc: 生成的随机数的均值&#xff0c;默认为 …

[含文档+PPT+源码等]精品基于Python实现的Django高校职业通的设计与实现

基于Python实现的Django高校招聘系统的设计与实现背景&#xff0c;主要源于以下几个方面的需求和趋势&#xff1a; 1. 就业压力的增加 随着高校毕业生数量的不断增加&#xff0c;就业压力日益加大。传统的招聘方式&#xff0c;如招聘会、报纸广告等&#xff0c;由于其信息传播…

题目:连续子序列

解题思路&#xff1a; 首先&#xff0c;不能使用暴力枚举&#xff0c;时间为O(n2)&#xff0c;超时。以下为正确做法&#xff1a; 假设找到一段区间&#xff08;其和>m&#xff09;&#xff0c;如上图黄色部分&#xff0c;那么该区间加上i后面的元素形成的新区间和都>m&a…

抖音小游戏画图位置移动

文章目录 画图移动图形位置 画图 const canvas tt.createCanvas(); const context canvas.getContext(2d);context.width 500; context.height 500;let isPressing false; // 是否按下 let startX 0; let startY 0;context.fillStyle "#f00"; context.fillR…

设计模式---责任链模式快速demo

Handler&#xff08;处理者&#xff09;&#xff1a; 定义一个处理请求的接口。通常包括一个处理请求的方法。它可以是抽象类或接口&#xff0c;也可以是具体类&#xff0c;具体类中包含了对请求的处理逻辑。处理者通常包含一个指向下一个处理者的引用。ConcreteHandler&#x…

网络安全公司及其主要产品介绍

以下是一些全球领先的网络安全公司及其主要产品介绍&#xff1a; 一、思科&#xff08;Cisco&#xff09; 思科是全球最大的网络设备供应商之一&#xff0c;其网络安全产品以企业级解决方案为主&#xff0c;覆盖多种安全需求。 Cisco ASA&#xff08;Adaptive Security Appli…