日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

P5734 文字处理软件 C++题解

發布時間:2023/12/29 c/c++ 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P5734 文字处理软件 C++题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直接上題目

你需要開發一款文字處理軟件。最開始時輸入一個字符串(不超過 100 個字符)作為初始文檔??梢哉J為文檔開頭是第 0 個字符【這一句話還是很重要的,仔細閱讀】。需要支持以下操作:

  • 1 str:后接插入,在文檔后面插入字符串 str,并輸出文檔的字符串。

  • 2 a b:截取文檔部分,只保留文檔中從第 a 個字符起 b 個字符,并輸出文檔的字符串。

  • 3 a str:插入片段,在文檔中第 a 個字符后面插入字符串 str,并輸出文檔的字符串。

  • 4 str:查找子串,查找字符串 str 在文檔中最先的位置并輸出;如果找不到輸出 -1。

為了簡化問題,規定初始的文檔和每次操作中的 str 都不含有空格或換行【不含空格實在是太友好了】。最多會有 q(q\le100)q(q≤100) 次操作。

思路:

毫無疑問,這道題可以直接用C++的STL庫,非常方便就可以AC

但是作為小萌新的我有點記不太清楚STL庫的函數了,那么只好手搓了

上代碼:

#include <iostream> #include <string.h> using namespace std;int main() {char ch[10010]={0};int q,x,y;cin >> q;cin >> ch;for (int i = 0; i < q; i++){char ch1[10010]={0};int k=0;int z=0;int c=0;cin >> x;if (x==1){cin >> ch1;y = strlen(ch);for (int j = 0; ch1[j] != 0; j++, y++){ch[y] = ch1[j];}cout << ch << endl;continue;} else if (x==2){cin >> x >> y;k = x;for (int j = 0; j < y; j++,k++){ch[k-x] = ch[k];}for (int j = y; ch[j] != 0; j++){ch[j] = 0;}cout << ch << endl;continue;} else if (x==3){cin >> x;cin >> ch1;y = strlen(ch1);for (int j = x; ch[j] != 0; j++,y++){ch1[y] = ch[j];}for (int j = 0; ch1[j] != 0; j++,x++){ch[x] = ch1[j];}cout << ch << endl;continue;} else if (x==4){cin >> ch1;y = strlen(ch1);for (int j = 0; ch[j] != 0; j++){if (ch[j] == ch1[0]){k = j;z = 0;c = j;for (int p = 0; ch1[p] != 0; p++,c++){if (ch[c] == ch1[p])continue;else {z = 1;break; }}if (z == 0){cout << k << endl;goto leave;}}}cout << -1 << endl;leave: continue;}}return 0; }

最后:

該函數還可以使用四個子函數,這樣也方便在出現WA的時候,對代碼進行修改

歡迎大家在討論區討論

總結

以上是生活随笔為你收集整理的P5734 文字处理软件 C++题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。