【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)
生活随笔
收集整理的這篇文章主要介紹了
【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
P5734 【深基6.例6】文字處理軟件
題目描述
你需要開(kāi)發(fā)一款文字處理軟件。最開(kāi)始時(shí)輸入一個(gè)字符串(不超過(guò) 100 個(gè)字符)作為初始文檔??梢哉J(rèn)為文檔開(kāi)頭是第 0 個(gè)字符。需要支持以下操作:
1 str:后接插入,在文檔后面插入字符串 str,并輸出文檔的字符串。
2 a b:截取文檔部分,只保留文檔中從第 a 個(gè)字符起 b 個(gè)字符,并輸出文檔的字符串。
3 a str:插入片段,在文檔中第 a 個(gè)字符前面插入字符串 str,并輸出文檔的字符串。
4 str:查找子串,查找字符串 str 在文檔中最先的位置并輸出;如果找不到輸出 -1。
為了簡(jiǎn)化問(wèn)題,規(guī)定初始的文檔和每次操作中的 str 都不含有空格或換行。最多會(huì)有 q(q\le100)q(q≤100) 次操作。
輸入格式
無(wú)
輸出格式
無(wú)
*輸入輸出樣例
輸入
4
ILove
1 Luogu
2 5 5
3 3 guGugu
4 gu
輸出
ILoveLuogu
Luogu
LuoguGugugu
3
題解
#include<stdio.h> #include<string.h> char temp[1000]; int main() {char a[1110];char b[111];int n,m;int l,r;int k;scanf("%d",&n);scanf("%s",a);for(int i=0;i<n;i++){scanf("%d",&m);if(m==1){scanf("%s",b);strcat(a,b);printf("%s\n",a);}else if(m==2){scanf("%d%d",&l,&r);a[l+r]='\0';strcpy(temp, &a[l]);strcpy(a, temp);printf("%s\n",a);}else if(m==3){scanf("%d%s",&k,temp);strcat(temp,&a[k]);a[k]='\0';strcat(a, temp);printf("%s\n",a);}else if(m==4)//這部分也可用strstr()函數(shù){int flag=0;char keep[1000]={0};scanf("%s",temp);for(int i=0;a[i]!='\0';i++){if(a[i]==temp[0]){for(int j=0;j<strlen(temp);j++){keep[j]=a[i+j];}if(strcmp(keep,temp)==0){printf("%d\n",i);flag++;break;}} }if(!flag) printf("-1\n");}} }總結(jié)
以上是生活随笔為你收集整理的【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 魔塔之拯救白娘子~我的第一个VB6+DX
- 下一篇: 中国最早的计算机汉字系统,1983年10