题目:

# 【深基6.例6】文字处理软件

## 题目描述

你需要开发一款文字处理软件。最开始时输入一个字符串作为初始文档。可以认为文档开头是第 $0$ 个字符。需要支持以下操作:

- `1 str`:后接插入,在文档后面插入字符串 $\texttt{str}$,并输出文档的字符串。

- `2 a b`:截取文档部分,只保留文档中从第 $a$ 个字符起 $b$ 个字符,并输出文档的字符串。

- `3 a str`:插入片段,在文档中第 $a$ 个字符前面插入字符串 $\texttt{str}$,并输出文档的字符串。

- `4 str`:查找子串,查找字符串 $\texttt{str}$ 在文档中最先的位置并输出;如果找不到输出 $-1$。

为了简化问题,规定初始的文档和每次操作中的 $\texttt{str}$ 都不含有空格或换行。最多会有 $q$ 次操作。

## 输入格式

第一行输入一个正整数 $q$,表示操作次数。

第二行输入一个字符串 $\texttt{str}$,表示最开始的字符串。

第三行开始,往下 $q$ 行,每行表示一个操作,操作如题目描述所示。

## 输出格式

一共输出 $n$ 行。

对于每个操作 $1,2,3$,根据操作的要求输出一个字符串。

对于操作 $4$,根据操作的要求输出一个整数。

## 样例 #1

### 样例输入 #1

```

4

ILove

1 Luogu

2 5 5

3 3 guGugu

4 gu

```

### 样例输出 #1

```

ILoveLuogu

Luogu

LuoguGugugu

3

```

## 提示

数据保证,$1 \leq q\le 100$,开始的字符串长度 $\leq 100$。

代码:

#include<stdio.h>

#include<string.h>

#define MAXN 101

//用两个字符串就行

char str[MAXN];//母串

char in[MAXN];//子串

int main() {

int n = 0;

scanf("%d",&n);

scanf("%s", str);//先输入数字还有母串

while (n--)

{

int num1=0;//输入的数字

scanf("%d", &num1);

if (num1 == 1) {

scanf("%s", in);

strcat(str,in);

puts(str);

}

else if (num1 == 2) {

/*对于操作 22 :

需使用 strcpy 函数

首先,将 str 串第 a + b 位及以后舍去;

接着,将 str 串第 a 位及以后复制到 in 串中暂存;

最后,将 in 串中暂存的内容复制回 str 串中。*/

int x, y;

scanf("%d %d", &x, &y);

//将后面舍去 就是用'\0'

str[x + y] = '\0';

strcpy(in, &str[x]);//将 str 串第 a 位及以后复制到 in 串中暂存;

strcpy(str, in);

puts(str);

}

else if (num1 == 3) {

int x;

scanf("%d %s", &x,in);

strcat(in, &str[x]);//将str串第x位及以后的部分接到in串后面

str[x] = '\0';//将str从x位后就断开 然后接到in前面

strcat(str, in);

puts(str);

}

else {

//查找 in 串在 str 串中的位置,若函数返回 NULL ,则

//如题输出 -1,否则将函数返回的指针与字符串串首指针作差以获得其在字符串中的位置。

scanf("%s", in);

//指针ans用来接收位置

char* ans = strstr(str, in);//strstr 函数在 str1 串内查找 str2 串的位置,如未找到,则返回 NULL

printf("%d\n", ans != NULL ? (int)(ans - str) : -1);

}

}

return 0;

}

文字处理软件(多复习)相关推荐

  1. 计算机应用基础文字处理软件应用职高PPT,《计算机应用基础》职高2010修订版_教(学)案...

    <计算机应用基础>职高2010修订版_教(学)案 (93页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 39.9 积分 . .<计算机 ...

  2. 计算机应用基础与实训教程word2003文字处理软件 教学目标,计算机基础教学计划多篇...

    [概述]计算机基础教学计划多篇为好范文网的会员投稿推荐,但愿对你的学习工作带来帮助. 在工作计划要达成的目标部分,关键是要清晰的定义目标,表现形式就是清楚的定义目标对应的指标,并设置量化的指标目标值. ...

  3. 音频转换成文字的软件哪个好用?推荐3个转换软件给大家

    现在疫情,很多小伙伴应该都是在家里上网课吧.不过我们在家里上课,有时候难免会出现注意力不集中或者是有事离开一下的情况.为了避免跟不上进度,我们可以使用录音将课上的内容给录制下来,方便课后复习.可是一堂 ...

  4. OCR文字识别软件的快速任务功能如何用

    2019独角兽企业重金招聘Python工程师标准>>> 在使用ABBYY FineReader Pro for Mac OCR文字识别软件处理文档时,经常会执行一系列相同的步骤,如扫 ...

  5. 对OCR文字识别软件进行自动分析和识别设置的教程

    2019独角兽企业重金招聘Python工程师标准>>> ABBYY FineReader 12这款OCR文字识别软件具有着强大的自主功能,在默认情况下,会自动分析并识别 FineRe ...

  6. 建标库标准怎么导出pdf_保存和导出PDF文档,这款OCR文字识别软件能做到

    ABBYY FineReader 作为一款强大的OCR文字识别软件,如果能运用到大家的办公中,将能帮助大家将各种格式的PDF文档保存为新的PDF文档.PDF/A格式文档,以及Microsoft Wor ...

  7. py提取文字中的时间_怎样提取照片中的文字?照片文字提取软件推荐

    怎样提取照片中的文字?平时,我很爱看些甜甜的言情小说,也对很多充满浪漫气息的图片.文字没有抵抗力(想把它们给保存.记录下来,以后可回看).不过,图片一键就可以保存下来了,想要记录图中文案还得使用ocr ...

  8. ai怎么让图片任意变形_想一键提取图片文字,有什么好的文字识别软件/APP推荐吗?...

    工作也有一段时间了,有时候需要把图片中的文字提取出来,转换成电子档式,一开始的时候可能是傻吧,也没想到借用工作减少工作量,就知道埋头拼命敲敲打打,文字比较少的时候还好,多了简直...得颈椎病只是迟早的 ...

  9. 手机必备OCR文字识别软件:福昕扫描王使用攻略

    如果要把一本书上的文字复制下来,需要对着书一个一个字打,但是如果通过OCR文字识别软件, 我们就可以通过拍照快速的将这些文字从书本上复制出来. 如果要制作扫描件,不需要到处找扫描仪,直接手机拍照通过扫 ...

最新文章

  1. java基本数据类型 以及 double float 二进制表示方法
  2. Android 通过 “隐式意图” 打开 系统的浏览器 访问 百度页面
  3. centos 7 yum 安装 MongoDB 4.2
  4. 160-PHP 文本替换函数str_replace(一)
  5. Java使用TCP实现群聊 聊天室(多线程和tcp的使用)
  6. 安装mysql8._安装MySQL8(附详细图文)
  7. 2004我曾经最喜欢的歌(一)
  8. JavaScript(3)——Object-Oriented Design
  9. vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)...
  10. C++ boost锁的概述
  11. Win10安装CUDA
  12. 2022-2028年中国光纤放大器行业市场发展潜力及投资策略研究报告
  13. 卡塞格林光学系统_改进型卡塞格林光学系统的设计
  14. vab宏与数据据笔记一(启用宏)
  15. 项目的运筹帷幄—项目进度、质量和成本最优决策理论探讨
  16. 一口气说出 OAuth2.0 的四种授权方式,面试官会高看一眼
  17. Gateway GPRS support node (GGSN) 相关资料
  18. 字节跳动2019春招算法题
  19. Cesium 中的离屏渲染
  20. 巨量千川投放新手必备知识点

热门文章

  1. linux 设计思想
  2. 计划任务命令 Schtasks
  3. 树莓派4b 串口通信实现自发自收
  4. Linux个人学习笔记,不定期更新
  5. #家庭网络配置(华为路由与交换机)
  6. TestLink报错之:TestLink:::致命错误
  7. 在 python 中进行单元测试
  8. 游戏夜读 | 不受欢迎的那个人
  9. Python考试评级
  10. 走进计算机世界--计算机科学