#ifndef _string_h_
#define _string_h_
#define ok 1
#define error 0
#define true 1
#define false 0
#define overflow -1
typedef int status;
typedef struct
hstring;
status strassign(hstring &t, char *chars);
status clearstring(hstring &s);
int strlength(hstring s);
status concat(hstring &t,hstring s1,hstring s2);
status substring(hstring &sub,hstring s,int pos,int len);
status strindex(hstring s,hstring t,int pos);
void print(hstring s);
#endif
#include"string.h"
#include
#include
using namespace std;
//初始化字串
status strassign(hstring &t,char chars)
for (i = 0, c = chars; *c; ++i, ++c);
if(!(t.ch=(char*)malloc(i*sizeof(char))))
else
s.length=0;
return ok; }
//求字串的長度
int strlength(hstring s)
//連線兩個字串
status concat(hstring &t,hstring s1,hstring s2)
if(!(t.ch=(char*)malloc((s1.length+s2.length)*sizeof(char))))
else
if(sub.ch)
if(!len)
else
while(it.length-1)
else
} //遍歷
void print(hstring s)
break;
case 2:
cout << "請輸入位置:" << endl;
cin >> pos;
cout << "請輸入子串的長度:" << endl;
cin >> len;
if (substring(sub, s, pos, len) == error)
else
break;
case 3:
cin.sync();
cout << "請輸入chars4:" << endl;
cin.get(chars4, 3);
strassign(t, chars4);
cin.sync();
//print(t);
cout << "請輸入位置:" << endl;
cin >> pos;
if (strindex(s, t, pos) == error)
else
break;
case 0:
cout << "操作結束!" << endl;
break;
default:
cout << "輸入錯誤!" << endl; }
} while (select != 0);
clearstring(s);
clearstring(sub);
clearstring(s1);
clearstring(s2);
return 0; }
replace 實現字串替換 字串
字串是 不可改變 的,我們通過可以獲取字串指定位置的字元,但不能使用更改指定位置的字元,一旦更改,就會報錯。a abcedfghijklmnopqrstuvwxyz a 3 a traceback most recent call last file line 1,in a 3 a typeerro...
C語言字串 堆記憶體
是程序的乙個記憶體段 text data bss heap stack 由程式設計師手動管理 特點 足夠大,缺點 使用麻煩1 隨著程式的複雜,資料量變多 2 其它記憶體段的申請 釋放不受控制,堆記憶體的申請和釋放受控制注意 c語言中沒有控制堆記憶體的語句,只能使用c標準庫提供的函式 include ...
實現字串替換
題意 輸入3個字串,然後再第乙個字串中找出所有的第二個字串,第三個字串替換掉所有的第二個字串,最後輸出新的字串。本題不難的,就是使用strstr 庫函式尋找到子串的位置,然後進行替換就可以了。c語言指標操作 17 16 17 25 include include include include ch...