定長順序串的實現

string.h

#define MAXSTRLEN 255
#define ERROR 0
#define OK 1


typedef int Status;
typedef char String[MAXSTRLEN + 1];

//初始化字符串
Status StrAssign(String T, char e);

//有串S復制得串T
Status StrCopy(String T,String S);

//比較兩個串的大小
Status StrCompare(String S,String T);

//獲取串的長度
int StrLength(String S);

Status ClearString(String S);

Status ConCat(char *T,String S1,String S2);

Status SubString(String Sub,String S,int pos,int len);

Status Index(String S,String T,int pos);

Status Replace();

Status StrInsert();

Status StrDelete();

Status DestroyString(String S);

?string.c

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void main() {

String S,S1,S2,Sub;
char a[1000],b[1000];
int c;
printf("請輸入第一個字符串\n");
gets_s(a,1000);
printf("請輸入第二個字符串\n");
gets_s(b,1000);

StrAssign(S,a);
StrAssign(S1,b);

//c = StrCompare(S,S1);//比較兩個字符串

SubString(Sub,S,3,20);//字符串的截取

for (int i = 1; i <=Sub[0] ; i++)
{
printf("%c\n",Sub[i]);
}

}


//獲取一個字符串
Status StrAssign(String T,char a[]) {

int length=0;
for (int i = 0;a[i]!='\0'; i++)
{

length++;

}

if (length > MAXSTRLEN) {
length = MAXSTRLEN;
}

T[0] = length;

for (int i = 0; i < length; i++)
{
T[i + 1] = a[i];

}


}

//字符串的比較
int StrCompare(String S, String T) {

int i = 1;

for ( i; (i<S[0])||(i<T[0]); i++)
{
if (S[i] != T[i]) {

return S[i] - T[i];

}

}

return 0;

}

//字符串的截取
Status SubString(String Sub, String S, int pos, int len) {

if (pos > S[0]|len<1|pos<1|len>S[0]-pos+1) {
return ERROR;
}
else {
Sub[0] = len;
int j = 1;
for (int i = pos; i <=pos+len; i++)
{
Sub[j] = S[i];
j++;
}
return OK;
}

}

//有字符串S得到字符串T
Status StrCopy(String T, String S) {

if (S[0]) {
return;
}
T[0] = S[0];
for (int j = 1; j <=S[0]; j++)
{
T[j] = S[j];
}
return OK;

}

//獲取串的長度
int StrLength(String S) {

return S[0];
}

//將字符串拼接為字符串T
Status ConCat(String T, String S1, String S2) {

if (S1[0] + S2[0] > MAXSTRLEN) {

if (S1[0] > MAXSTRLEN) {

T[0] = MAXSTRLEN;

for (int i = 1; i <= MAXSTRLEN; i++) {
T[i] = S1[i];
}
}
else
{
T[0] = S1[0];
for (int i = 1; i <=S1[0]; i++) {
T[i] = S1[i];
}
int j = 1;
for (int j = 1; j <= MAXSTRLEN - S1[0];j++) {
T[T[0] + j] = S2[j];
}
T[0] = T[0] + j - 1;

}


}
else {

T[0] = S1[0] + S2[0];
int i;
for ( int i = 1; i <=S1[0]; i++)
{
T[i] = S1[0];
}
for (int j = 1; j <=S2[0];j++) {

T[i + j - 1] = S2[j];

}

}

return OK;


}

?

轉載于:https://www.cnblogs.com/paulversion/p/7692804.html

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

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

相關文章

pmp思維導圖 第六版_PMP考試技巧攻略(上)

PMP考試需要有保證足夠的時間投入&#xff1a;獲得PMP 考試并拿到5A 成績&#xff0c;并且還需要理解性記憶&#xff1a;PMP 指定教材PMBOK第六版&#xff08;教材為必看三遍以上&#xff09;&#xff0c;學習起來是有趣的&#xff0c;同時也是痛苦的。因為看書時字面的字我們認…

程序員應該具備的素質(來自csdn)

程序員是一種技術工作&#xff0c;在IT的發展中有相當重要的地位&#xff0c;從底層硬件通訊協議的建立&#xff0c; 到數據傳輸層的處理&#xff0c;到操作系統的建設&#xff0c;到數據庫平臺的建設&#xff0c;一直到應用層上各種數 據營銷平臺的搭建&#xff0c;程序員在里…

linux的du使用方法

該命令的各個選項含義如下&#xff1a; -s 對每個Names參數只給出占用的數據塊總數。 -a 遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數據塊數。若既不指定-s&#xff0c;也不指定-a&#xff0c;則只顯示Names中的每一個目錄及其中的各子目錄所占的磁盤塊數-b 以字節為…

淺談MVC MVP MVVM

復雜的軟件必須有清晰合理的架構&#xff0c;否則無法開發和維護。 MVC&#xff08;Model-View-Controller&#xff09;是最常見的軟件架構之一&#xff0c;業界有著廣泛應用。 它本身很容易理解&#xff0c;但是要講清楚&#xff0c;它與衍生的 MVP 和 MVVM 架構的區別就不容易…

機器學習接口和代碼之 線性回歸

線性回歸sklearn 接口和代碼 官網api&#xff1a;https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares LinearRegression class sklearn.linear_model.LinearRegression(fit_interceptTrue, normalizeFalse, copy_XTrue, n_jobs1)參數說明&a…

中國智慧VS西方智慧-看中國IT風云與IT產業怪狀

為什么國外沒有一家互聯網公司在中國取得成功&#xff0c;為什么他們都水土不服&#xff0c;為什么他們都在中國都混不下去&#xff0c;YAHOO, EBAY等等這樣享譽全球的互聯網公司都在中國無法取得成功&#xff01;為什么連讓IT巨無霸微軟都覺得發抖&#xff0c;讓比爾蓋茨夜夜做…

商務搜索引擎_外貿研修 | 世界各國常用搜索引擎,開發客戶必備!

我們平時生活中也好&#xff0c;開發客戶也好&#xff0c;搜索引擎是我們離不開的工具。最佳沒有之一的當屬谷歌了。谷歌網址&#xff1a;www.google.com谷歌高級搜索&#xff1a;https://www.google.com/advanced_search (通過設置/排除一些字詞縮小精確搜索范圍)作為普通使用…

HaProxy+Keepalived+Mycat高可用群集配置

概述 本章節主要介紹配置HaProxyKeepalived高可用群集&#xff0c;Mycat的配置就不在這里做介紹&#xff0c;可以參考我前面寫的幾篇關于Mycat的文章。 部署圖&#xff1a; 配置 HaProxy安裝 181和179兩臺服務器安裝haproxy的步驟一致 --創建haproxy用戶 useradd haproxy--…

奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情況下報錯

本來打算用一下atom但是導出pdf報錯&#xff0c;可是在預覽的情況下就沒有問題&#xff0c;順便吐槽一下谷歌瀏覽器自己的markdown在線預覽插件無法適配&#xff0c;用搜狗搭載谷歌的插件才能導出pdf&#xff0c;一下感覺逼格少了很多&#xff0c;等忙完這陣再來看一下。先貼出…

機器學習之 sklearn.preprocessing 模塊

sklearn.preprocessing.PolynomialFeatures 多項式擴展。 它是使用多項式的方法來進行的&#xff0c;如果有a&#xff0c;b兩個特征&#xff0c;那么它的2次多項式為&#xff08;1,a,b,a^2,ab, b^2&#xff09;&#xff0c;這個多項式的形式是使用poly的效果。 api class s…

Python 面試題

Python面試315道題第一部 Python面試題基礎篇&#xff08;80道&#xff09;1、為什么學習Python&#xff1f;2、通過什么途徑學習的Python&#xff1f;3、Python和Java、PHP、C、C#、C等其他語言的對比&#xff1f;PHPjavacc#c4、簡述解釋型和編譯型編程語言&#xff1f;編譯型…

周鴻祎,高司令

還是感到有必要將自己的一些想法快速記下來。 首先是對周鴻祎新員工演講的看法。 就說實話這一點來說&#xff0c;周鴻祎比很多人強。所以我比較喜歡引用他的話&#xff0c;確實比較實在&#xff0c;不裝逼。 至于一個公司招人的風格&#xff0c;是公司自己定的&#xff0c;別人…

JDBC與JNDI應用比較

JNDI用了多年但是一直沒去弄懂其和JDBC的區別&#xff0c;今天在網上搜了下&#xff0c;發下些資料說明的還不錯記錄下。 JNDI是 Java 命名與目錄接口&#xff08;Java Naming and Directory Interface&#xff09;&#xff0c;在J2EE規范中是重要的規范之一&#xff0c;不少專…

bzoj1038500AC!

序列dp 先開始想了一個類似區間dp的東西...少了一維 然后發現似乎不太對&#xff0c;因為女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示當前有i個人&#xff0c;j個男生&#xff0c;男生和女生的后綴最大差是x&#xff0c;女生和男生最大差是y&#xff0c;x,y>0,轉…

機器學習接口代碼之 Ridge、Lasso、Elasitc Net

目錄 Ridge Regression &#xff08;嶺回歸&#xff09; Lasso Regression Elasitc Net&#xff08;彈性網絡&#xff09; 案例&#xff1a;葡萄酒質量預測 官網地址https://scikit-learn.org/stable/modules/linear_model.html Ridge Regression &#xff08;嶺回歸&…

公司技術管理角度看C++游戲程序員發展

公司技術管理角度看C游戲程序員發展 H3D 這是我多年來招聘培訓游戲程序員的一點想法。一直想匯總一下。主要目的是為了更好的對公司新進C程序員進行培訓&#xff0c;并且建立起游戲程序員培訓&#xff0c;發展&#xff0c;成才&#xff0c;成為核心骨干&#xff0c;管理層&am…

android生命周期_Android開發 View的生命周期結合代碼詳解

咱們以TextView控件為例&#xff1a;/*** Created by SunshineBoy on 2020/9/23.*/public class TestTextView extends android.support.v7.widget.AppCompatTextView {public TestTextView(Context context) {super(context);Log.e("TestTextView","TestTextVi…

salt

安裝服務端和客戶端服務端(marster)yum install salt-master -y客戶端(slave)yum install salt-minion -ymarster192.168.11.17/etc/init.d/salt-master start配置文件: vi /etc/salt/mastercat master|egrep -v ;|#|^$auto_accept:True #設置自動接受日志: /var/log/salt/mas…

python | 查看pip支持的文件名和版本

python | 查看pip支持的文件名和版本win下查詢大哥推薦已經解決win下查詢 import pip._internalprint(pip._internal.pep425tags.get_supported())64位的需要在pip后面加個_internal 如果不行試試下邊的 大哥推薦已經解決 import wheel.pep425tags as w print(w.get_suppor…

機器學習算法之支持向量機 SVM

距離知識 點到直線/平面的距離公式&#xff1a; 1、假定點p(x0,y0)&#xff0c;平面方程為f(x,y)AxByC&#xff0c;那么點p到平面f(x)的距離為&#xff1a; 2、從三維空間擴展到多維空間中&#xff0c;如果存在一個超平面f(X)θXb; 那么某一個點X0到這個超平面的距離為: 參考…