aurain
技術文摘
C++博客
首頁
新文章
新隨筆
聚合
管理
posts - 137, comments - 268, trackbacks - 0
刪除首次出現字串
今天在cppblog看了一篇這樣的博文,下午的時候為了熟悉下,自己也寫了個,本來要給出原博文的地址的,但發現記不起來了,當時也是隨意瀏覽的,這里表示抱歉。
int
mystrstr(
const
char
*
src,
const
char
*
sub)
{
int
ret
=
-
1
;
char
*
cp
=
(
char
*
)src;
char
*
s1,
*
s2;
if
(
!*
sub)
return
ret;
while
(
*
cp)
{
s1
=
cp;
s2
=
(
char
*
)sub;
while
(
*
s1
&&
*
s2
&&
!
(
*
s1
-*
s2))
{
s1
++
;
s2
++
;
}
while
(
!*
s2)
return
ret;
cp
++
;
ret
++
;
}
return
ret;
}
int
mystrlen(
const
char
*
src)
{
int
ret
=
0
;
while
(
*
src
++
)
{
ret
++
;
}
return
ret;
}
bool
del_substr(
char
*
src,
const
char
*
sub)
{
int
idx
=
mystrstr(src, sub);
if
(idx
<
0
)
{
return
false
;
}
int
iLen
=
mystrlen(sub);
for
(
int
i
=
idx
+
1
; i
<
mystrlen(src); i
++
)
{
*
(src
+
i)
=
*
(src
+
i
+
iLen);
}
return
true
;
}
int
_tmain(
int
argc, _TCHAR
*
argv[])
{
char
szSrc[]
=
"
abcdefghi
"
;
char
*
szSub
=
"
de
"
;
del_substr(szSrc, szSub);
cout
<<
szSrc
<<
endl;
}
posted on 2008-07-07 16:29
水
閱讀(1791)
評論(10)
編輯
收藏
引用
所屬分類:
算法與數據結構
FeedBack:
#
re: 刪除首次出現字串
2008-07-07 17:10 |
hamburger
!(*s1-*s2)為什么不寫成(*s1 == *s2)?
回復
更多評論
#
re: 刪除首次出現字串
2008-07-07 17:45 |
陳梓瀚(vczh)
事實上==更好,x86的比較不需要產生結果,減法會產生結果。
回復
更多評論
#
re: 刪除首次出現字串[未登錄]
2008-07-08 03:11 |
snow
how about src is NULL , and sub is NULL
回復
更多評論
#
re: 刪除首次出現字串[未登錄]
2008-07-08 03:57 |
strstr
if standard string functions are allowed to be used, how about following function? Maybe you just want to write your own strstr and strlen functions?
char * del_substr(char *src, const char *sub)
{
int i, j;
char *dst = src;
char *temp = strstr(src, sub);
if (src == NULL)
return NULL;
if (sub == NULL || temp == NULL)
return dst;
j = strlen(temp) - strlen(sub);
for (i = temp-dst; i < temp-dst+j; i++)
dst[i] = dst[i + strlen(sub)];
dst[i] = '\0';
return dst;
}
回復
更多評論
#
re: 刪除首次出現字串
2008-07-08 08:37 |
feosun
while (!*s2)
return ret;
寫成
if (!*s2)
return ret;
不是更好么
回復
更多評論
#
re: 刪除首次出現字串
2008-07-08 13:49 |
水
@hamburger,陳梓瀚(vczh)
這個我是借鑒微軟標準庫里面的實現方式,所以當時沒考慮那么多。謝謝兩位的提醒,受教了!
回復
更多評論
#
re: 刪除首次出現字串
2008-07-08 13:50 |
水
@snow
對,沒有對傳入參數進行判斷了,以后我要注意了,即使平時測試也要養成嚴格的習慣。謝謝你
回復
更多評論
#
re: 刪除首次出現字串
2008-07-08 13:52 |
水
@strstr
嗯,寫這個就是在不能使用crt的情況下的。
你寫的也對,效率應該比我的要好些
回復
更多評論
#
re: 刪除首次出現字串
2008-07-08 13:53 |
水
@feosun
很有道理!
回復
更多評論
#
re: 刪除首次出現字串
2008-07-09 09:32 |
cexer
博主是一個虛心學習的好同志!學習了!
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
大數據量,海量數據處理方法總結(轉)
hash算法大全(轉http://m.shnenglu.com/koson/archive/2010/03/11/109446.html)
整數劃分算法原理與實現
求二進制數中1的個數
計算最大公約數的兩種算法
用至少三種方法實現1+2+...+n
Win32內存相關API
刪除首次出現字串
內部排序算法比較
一個數組,下標從0到n,元素為從0到n的整數。判斷其中是否有重復元素
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
V2EX創意工作者的社區
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(17)
給我留言
查看公開留言
查看私人留言
隨筆分類
(138)
Android(2)
c/c++基礎知識(17)
Java(4)
Linux(7)
socket編程(8)
sql(3)
tcp/ip(18)
udt分析(2)
vc(13)
Windows開發(10)
windows驅動(17)
架構(1)
內存管理(3)
軟件分析(8)
算法與數據結構(10)
網絡安全(2)
項目管理(8)
協議分析(4)
移動互聯(1)
隨筆檔案
(137)
2015年11月 (1)
2015年5月 (1)
2014年11月 (1)
2014年10月 (1)
2014年7月 (7)
2014年4月 (1)
2014年3月 (3)
2014年2月 (4)
2014年1月 (2)
2013年10月 (1)
2013年3月 (1)
2013年1月 (1)
2012年12月 (1)
2012年11月 (2)
2012年7月 (1)
2011年9月 (1)
2011年8月 (2)
2011年6月 (2)
2011年3月 (1)
2010年11月 (2)
2010年9月 (1)
2010年8月 (1)
2010年7月 (5)
2010年5月 (2)
2009年12月 (3)
2009年11月 (1)
2009年9月 (3)
2009年8月 (3)
2009年6月 (7)
2009年4月 (5)
2009年3月 (7)
2009年2月 (3)
2009年1月 (7)
2008年12月 (1)
2008年11月 (6)
2008年10月 (5)
2008年9月 (2)
2008年8月 (6)
2008年7月 (2)
2008年6月 (11)
2008年5月 (3)
2008年4月 (4)
2008年3月 (3)
2008年2月 (7)
2008年1月 (1)
2007年12月 (2)
網絡開發
C++的羅浮宮
C++基礎知識
逆水行舟
基礎知識
紫月城游戲軟件
網絡編程
最新隨筆
1.?Java調優知識匯總
2.?Web API
3.?htop使用備忘
4.?Windows下jre server模式啟動
5.?ubuntu下允許mysql遠程連接
6.?SQLServer性能優化之 nolock,大幅提升數據庫查詢性能
7.?數據庫SQL優化大總結之 百萬級數據庫優化方案
8.?Ubuntu12.0.4 server手工安裝jdk6
9.?Ubuntu12.04 server配置apache2+php5+mysql5環境
10.?Ubuntu 12.04 root登錄
搜索
積分與排名
積分 - 499075
排名 - 36
最新隨筆
1.?Java調優知識匯總
2.?Web API
3.?htop使用備忘
4.?Windows下jre server模式啟動
5.?ubuntu下允許mysql遠程連接
6.?SQLServer性能優化之 nolock,大幅提升數據庫查詢性能
7.?數據庫SQL優化大總結之 百萬級數據庫優化方案
8.?Ubuntu12.0.4 server手工安裝jdk6
9.?Ubuntu12.04 server配置apache2+php5+mysql5環境
10.?Ubuntu 12.04 root登錄
最新評論
1.?re: 浩方對戰平臺原理初步分析
有趣,感謝博主的分析,也敬佩博主的人品。
--Svtter
2.?re: 一種自定義網絡通信協議
怎樣學會
--鐘易成
3.?re: 如何編譯TrueCrypt 7.0a源碼
您好,請問現在還可以找您發一下源碼么?
--xiaoyaya103
4.?re: svn提交時設置文件類型過濾
樓主我嘗試了您的方法 好像不去效果
--ss
5.?re: 介紹一個P2P點播直播開源項目,挺不錯的
支持!!
--劉芳
閱讀排行榜
1.?GetWindowRect和GetClientRect(轉)(34262)
2.?計算最大公約數的兩種算法(24245)
3.?windows中定時操作(SetTimer函數用法)(21876)
4.?bug嚴重級別和優先級別定義(13925)
5.?介紹一個P2P點播直播開源項目,挺不錯的(12736)
評論排行榜
1.?如何編譯TrueCrypt 7.0a源碼(29)
2.?用至少三種方法實現1+2+...+n(19)
3.?【分享】軟件工程規范-軟件工程文檔模板(12)
4.?指針和引用的聯系與區別(10)
5.?刪除首次出現字串(10)
Copyright ©2025 水 Powered By
博客園
模板提供:
滬江博客
久久精品日日躁夜夜躁欧美
|
嫩草影院久久国产精品
|
色88久久久久高潮综合影院
|
色综合久久综合网观看
|
久久久久九九精品影院
|
国产成人精品白浆久久69
|
国产成人综合久久精品红
|
精品久久人人爽天天玩人人妻
|
三上悠亚久久精品
|
国产AⅤ精品一区二区三区久久
|
99久久99这里只有免费的精品
|
亚洲国产精品无码久久久久久曰
|
精品久久久久久
|
久久精品水蜜桃av综合天堂
|
亚洲欧洲精品成人久久曰影片
|
无码人妻精品一区二区三区久久
|
久久久久精品国产亚洲AV无码
|
久久人人爽人人爽人人AV东京热
|
伊人丁香狠狠色综合久久
|
日韩AV无码久久一区二区
|
久久99久久无码毛片一区二区
|
久久人人爽人人爽人人AV东京热
|
久久99精品久久久久久噜噜
|
99久久人妻无码精品系列
|
久久99热这里只频精品6
|
久久国产精品二国产精品
|
久久精品国产福利国产秒
|
久久久久无码精品国产
|
亚洲午夜久久久影院
|
国产成人精品久久二区二区
|
中文字幕久久久久人妻
|
中文成人久久久久影院免费观看
|
久久久精品久久久久特色影视
|
久久精品国产精品青草app
|
久久久精品人妻一区二区三区四
|
精品久久久久久久国产潘金莲
|
午夜欧美精品久久久久久久
|
久久久国产亚洲精品
|
久久天天躁狠狠躁夜夜网站
|
99久久精品免费看国产免费
|
97久久综合精品久久久综合
|