Problem D: 順序串的基本運算

Problem D: 順序串的基本運算

Time Limit: 1 Sec??Memory Limit: 128 MB
Submit: 73??Solved: 28
[Submit][Status][Web Board]

Description

編寫一個程序,實現順序串的各種基本運算,主函數已給出,請補充每一種方法。

?

1、建立串s="abcdefghefghijklmn",和串s1="xyz";

2、輸出串s;

3、輸出串s的長度;

4、在串s的第九個字符位置插入串s1而產生s2;

5、輸出串s2;

6、刪除串s的第二個字符開始的五個字符而產生串s2;

7、輸出串s2;

8、將串s第二個字符開始的五個字符替換成串s1而產生串s2;

9、輸出串s2;

10、提取串s的第二個字符開始的10個字符而產生s2;

11、輸出串s3;

12、將串s1和串s2連接起來而產生串s3;

13、輸出串s3;

?

順序串的定義為

typedef struct
{
char data[SizeMax];
int length;
} SqString;
主函數:
int main()
{
SqString s,s1,s2,s3;
char c[]="abcdefghefghijklmn",d[]="xyz";
StrAssign(s,c); ? ? ? ? ? ? ? ? ? ? ? ? ? ? //建立串
StrAssign(s1,d);
DispStr(s); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //輸出串
StrLength(s);
s2=InsStr(s,9,s1); ? ? ? ? ? ? ? ? ? ? ? ? ?//將s1插入到s的第九個位置
DispStr(s2);
s2=DelStr(s,2,5); ? ? ? ? ? ? ? ? ? ? ? ? ? //刪除s第二個字符開始的五個字符
DispStr(s2);
s2=RepStr(s,2,5,s1); ? ? ? ? ? ? ? ? ? ? ? ?//將串s第二個字符開始的五個字符替換成串s1
DispStr(s2);
s2=TiStr(s,2,10); ? ? ? ? ? ? ? ? ? ? ? ? ? //提取串s的第二個字符開始的10個字符
DispStr(s2);
s3=Concat(s1,s2); ? ? ? ? ? ? ? ? ? ? ? ? ? //將串s1和串s2連接起來
DispStr(s3);
return 0;
}

Input

Output

Sample Output

abcdefghefghijklmn
18
abcdefghxyzefghijklmn
aghefghijklmn
axyzghefghijklmn
bcdefghefg
xyzbcdefghefg

HINT

請使用C++編譯并提交

#include <stdio.h> 
#include <string.h> 
#define SizeMax 105 
typedef struct
{ char data[SizeMax]; int length; 
} SqString;void StrAssign(SqString &s,char cstr[]) 
{ int i; for(i=0;i<(int)strlen(cstr);i++) s.data[i]=cstr[i]; s.length=i; 
} 
void StrLength(SqString s) 
{ printf("%d\n",s.length); 
} 
void DispStr(SqString s) 
{ int i; if(s.length>0) { for(i=0;i<s.length;i++) printf("%c",s.data[i]); printf("\n"); } 
} 
SqString InsStr(SqString s1,int i,SqString s2) 
{ int j; SqString str; str.length=0; if(i<=0||i>s1.length+1) return str; for(j=0;j<i-1;j++) str.data[j]=s1.data[j]; for(j=0;j<s2.length;j++) str.data[i+j-1]=s2.data[j]; for(j=i-1;j<s1.length;j++) str.data[s2.length+j]=s1.data[j]; str.length=s1.length+s2.length; return str; 
} 
SqString DelStr(SqString s,int i,int j) 
{ int k; SqString str; str.length=0; if(i<=0||i>s.length||i+j>s.length+1) return str; for(k=0;k<i-1;k++) str.data[k]=s.data[k]; for(k=i+j-1;k<s.length;k++) str.data[k-j]=s.data[k]; str.length=s.length-j; return str; 
} 
SqString RepStr(SqString s,int i,int j,SqString s1) 
{ int k; SqString str; str.length=0; if(i<=0||i>s.length||i+j-1>s.length) return str; for(k=0;k<i-1;k++) str.data[k]=s.data[k]; for(k=0;k<s1.length;k++) str.data[i+k-1]=s1.data[k]; for(k=i+j-1;k<s.length;k++) str.data[s1.length+k-j]=s.data[k]; str.length=s.length+s1.length-j; return str; 
} 
SqString TiStr(SqString s,int i,int j) 
{ int k; SqString str; str.length=0; if(i<=0||i>s.length||i+j-1>s.length) return str; for(k=0;k<j;k++) str.data[k]=s.data[k+i-1]; str.length=j; return str; 
} 
SqString Concat(SqString s1,SqString s2) 
{ SqString str; str.length=s1.length+s2.length; int i; for(i=0;i<s1.length;i++) str.data[i]=s1.data[i]; for(i=0;i<s2.length;i++) str.data[i+s1.length]=s2.data[i]; return str; 
} 
int main() 
{ SqString s,s1,s2,s3; char c[]="abcdefghefghijklmn",d[]="xyz"; StrAssign(s,c);                             //建立串 StrAssign(s1,d); DispStr(s);                                 //輸出串 StrLength(s); s2=InsStr(s,9,s1);                          //將s1插入到s的第九個位置 DispStr(s2); s2=DelStr(s,2,5);                           //刪除s第二個字符開始的五個字符 DispStr(s2); s2=RepStr(s,2,5,s1);                        //將串s第二個字符開始的五個字符替換成串s1 DispStr(s2); s2=TiStr(s,2,10);                           //提取串s的第二個字符開始的10個字符 DispStr(s2); s3=Concat(s1,s2);                           //將串s1和串s2連接起來 DispStr(s3); return 0; 
} 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536199.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

骨牌鋪方格

骨牌鋪方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一個長方形方格中,用一個1 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.例如n3時…

遞歸思想完成n皇后問題

已經很長時間不敲代碼了&#xff0c;感覺自己越來與頹廢&#xff0c;所以現在又想做回一名苦逼的程序員&#xff0c;開啟自己的代碼之路。 我是根據視頻敲的&#xff0c;沒有題目&#xff0c;先看個四皇后問題吧。 所謂4皇后問題就是求解如何在44的棋盤上無沖突的擺放4個皇后棋…

POJ1163 數字三角形

1.題目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB識別

VirtualBox識別USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虛擬機配置面板中打開USB設備選項&#xff0c;分別勾選上“啟動USB控制器”“啟用usb2.0控制器”選項&#xff0c;如果有錯誤去https://www.virtualbox.org/wiki/Downloads 下載相應版本的插件包&a…

ubuntu實現簡單的劃詞工具

ubuntu實現簡單的劃詞工具 由于ubuntu下面沒有比較好用的劃詞翻譯工具&#xff0c;而且本人比較喜歡有道詞典&#xff0c;雖然ubuntu下有deepin版本的有道詞典包&#xff0c;可是總是會有bug&#xff0c;卡死等等。所以自己參考別人寫了一個小工具&#xff0c;涉及shell和pyth…

動態規劃進階題目之滑雪

Problem F: 動態規劃進階題目之滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4 Solved: 3[Submit][Status][Web Board]Description Michael喜歡滑雪百這并不奇怪&#xff0c; 因為滑雪的確很刺激。可是為了獲得速度&#xff0c;滑的區域必須向下傾斜&#xff0c;而且當…

修改win10我的文檔下載等移動別處

win10移動我的文檔&#xff0c;下載等到其他盤符辦法 解決辦法 1.選擇我的文檔&#xff0c;鼠標右鍵選擇屬性&#xff0c;在工具欄選擇位置&#xff0c;然后選擇想移動到哪里的盤符即可&#xff0c;如圖&#xff1a;2.操作完后選擇應用->確定&#xff0c;就這么簡單。

神奇的口袋

2755:神奇的口袋查看 提交 統計 提示 提問總時間限制: 10000ms 內存限制: 65536kB描述有一個神奇的口袋&#xff0c;總的容積是40&#xff0c;用這個口袋可以變出一些物品&#xff0c;這些物品的總體積必須是40。John現在有n個想要得到的物品&#xff0c;每個物品的體積分別是a…

Ubuntu16.04LTS修改開機動畫

ubuntu16.04LTS修改開機動畫 ubuntu自帶的開機動畫實在是很不滿美觀&#xff0c;但是又不想重寫&#xff0c;怎么辦&#xff1f; 接下來交你們一招。 1.開機動畫文件夾 Ubuntu14.04的開機動畫在/usr/share/plymouth文件夾內 2.下載開機動畫 兩種方式&#xff1a; 從Ubun…

Qt的Xml操作QDomDocument

Qt的Xml操作QDomDocument Qt對于Xml的支持是很好的&#xff0c;一些我們需要的操作應有盡有&#xff0c;下面簡單介紹一下怎樣使用。主要有以下幾點使用&#xff1a; 寫xml到文件讀xml添加節點到xml刪除xml中某節點信息修改xml中某節點信息 準備工作 .pro加入QT xml需要in…

2815:城堡問題

2815:城堡問題 查看提交統計提示提問 總時間限制: 1000ms 內存限制: 65536kB描述1 2 3 4 5 6 7 #############################1 # | # | # | | ######---#####---#---#####---#2 # # | # # # # ##---#####---#####---#####---#3 # …

冒泡排序法函數

文章目錄冒泡排序法的函數實現使用教程冒泡排序法的函數實現 話不多說上代碼&#xff0c;拿去直接用。 // 冒泡排序函數 /* * brief sort * param array為數組名稱&#xff0c;length為數組的長度&#xff0c;order為1或0,1代表從小到大排序 * 0代表從大到小排序…

boost序列化(Serialization)

本文章轉載自 http://m.blog.csdn.net/zj510/article/details/8105408 程序開發中&#xff0c;序列化是經常需要用到的。像一些相對高級語言&#xff0c;比如JAVA, C#都已經很好的支持了序列化&#xff0c;那么C呢&#xff1f;當然一個比較好的選擇就是用Boost&#xff0c;這個…

java基礎經典練習題

【程序1】 題目&#xff1a;古典問題&#xff1a;有一對兔子&#xff0c;從出生后第3個月起每個月都生一對兔子&#xff0c;小兔子長到第三個月后每個月又生一對兔子&#xff0c;假如兔子都不死&#xff0c;問每個月的兔子總數為多少&#xff1f; //這是一個菲波拉契數列問題 p…

ubuntu下wps不能輸入中文

ubuntu下wps不能輸入中文 原因是因為fcitx環境的原因&#xff0c;想了解fcitx的可以看這篇文章&#xff0c;鏈接。 使用腳本解決 將下面的腳本復制到新建的文件中&#xff0c;chmod加權限&#xff0c;然后執行即可。 #! /bin/bash #--------------------------------------…

常見的幾種內排序算法以及實現(C語言)(轉)

所有未排序的數組是經過檢查合法的主要的內排序包括冒泡、插入、希爾、堆排序、歸并、快速、桶排序等其C語言實現的源文件下載地址&#xff1a;http://download.csdn.net/detail/mcu_tian/9530227冒泡排序冒泡排序應該是排序中最簡單的算法了主要思路如下&#xff1a;1&#xf…

常見編程命名縮寫

命名縮寫 通用縮寫翻譯控件縮寫翻譯addressaddr地址calendarcdr日歷applicationapp應用程序messageDialogmsgdlg消息框asynchronizationasyn異步drawerdrw抽屜averageavg平均數buttonGroupbtngrp按鈕分組bitmapbmp位圖checkBoxchk復選框bufferbuf緩沖區containercntr容器chara…

funCode課程實訓(C++ )

funcode是一個簡單的游戲制作引擎&#xff0c;適合c初學者操作&#xff0c;可以幫助初學者更好的了解c環境&#xff0c;以及各種函數的實現&#xff0c;本學期我們用funcode作為C最后的課程設計&#xff0c;所以我就使用funcode制作一個打地鼠的小游戲。以下是對這個小程序的描…

Nodejs,Npm,React安裝教程

React安裝 1.下載node.js安裝包 下載二進制包 選擇比較穩定的版本進行安裝&#xff0c;v8.9 2.安裝 直接把文件解壓復制到某個目錄下&#xff0c; sudo cp -r node-v8.9.0 /opt/node #你下載的版本sudo touch /etc/profile.d/node.sh #新建一個腳本文件sudo gedit /etc/…

Ubuntu下的提示信息彩色顯示

【問題】 雖然已經折騰過了&#xff1a; 【已解決】Ubuntu中讓終端只顯示當前路徑&#xff0c;而不顯示絕對路徑 但是&#xff0c;終端中的prompt提示信息&#xff0c;不是彩色的&#xff0c;導致的結果是&#xff1a; 當終端中輸出信息很多時&#xff1a; 【已解決】Ubun…