1. 關於BF演算法的c語言實現
我修改的程序都是把S[0] T[0]轉換為strlen(S) strlen(T)函數來實現的
為什麼不把strlen(S),strlen(T)分別賦予S[0],T[0],害怕覆蓋原來的數據嗎?沒有必要,他們原本就是來存儲這個數據的,君不見,它們都不參與匹配!他們的初始化應該在這個函數之外完成,在每次數組長度改變後,就及時設置,換句話說,在調用這個函數之前,應該保證他們已經設置正確,
在列印時,應該從第二個元素S[1]或T[1]開始,因為S[0],T[0]不再是數組的實際內容
不知道我有沒有表述清楚,
一般,數組的第一個元素存放實際的內容,而你這里並不是這樣,數組的第一個元素不再是數組的實際內容,而是數組長度
==================================================================
補充;
比較大小時S[0]的值不就變成了整形的ASCII碼值了么?
1.整數就是整數,沒有ASCII碼,ASCII碼是針對字元的
2.在C中,整數賦予字元變數是合法的
2.在C中,字元與整數的關系運算也是合法的,當你要把一個位元組的數解釋成字元的時候,它就是字元,可他存儲的還是數啊,就把它當整數用吧,畢竟我們沒有打算列印它,當然它能表示的整數太少了,所以數組長度受到限制
如果你要以字元顯示它,那它當然是那個整數所對應的字元,如果那是可列印字元的話
2. c語言字元串操作演示程序設計求大神= =
(1)字元串初始化InitString。--------->InitString()
(2)字元串輸入InputString。--------->InputString()
(3)字元串輸出OutputString。--------->OutputString()
(4)給定字元串,求串長StringLen。--------->StringLen()
(5)給定位置,串插入InsertStringbyLocation。--------->InsertStringbyLocation()
(6)BF演算法查找字元串BFSear1ch。--------->BFSear1ch()
(7)KMP演算法查找字元串KMPSearch。--------->KMPSearch()
你的理解弊或罩有問題,剩下的應團則該怎麼做不用我說了,上面的函租鬧數都是沒有返回值和參數的,這個要你自己定了
3. 數據結構 BF演算法
建議動手畫一畫會比較直觀
i,j是這里作位置指針 i指向SString S中的一個位置 j指碰慧向SString T的一個位置
while後的括弧笑轎答中是循環繼續的條件
很多地方字元串本身可以理解成一個字元構成的數組
S[0]這里指0號位置的內容 這里用既然用i,j和這個0#內容比較來帆拆確定何時結束循環
即可以把0號位置的內容理解為i最終的移動位置 j同理
這里++i和i++皆可 先加後加不影響 因為本句里已經沒有再用到i的值了
最後一句 如果j>T[0]導致循環結束,此時返回i,這里i是一個在S中移動最終位置
與T[0]的差 相當於兩個最終位置間的距離
另外 一般用return 0 表示正常返回
強烈建議動手畫 文字表述不能很直觀
4. 如何用C語言或者C++在給定文本中查找並定位字元串
http://ke..com/view/4462643.htm
這里有答案。。。你要是還不會的話找我。。QQ群:110675294裡面有人會給你回答的
5. 一個簡單的小程序 C語言 BF演算法
引用沒問題,就是BF函數錯了。
#include<stdio.h>
#include<string.h>
#include<iostream>//.h去掉
usingnamespacestd;//命名空間
intBF(charS[],charT[])
{
inti,j,start;
i=0;
j=0;
start=0;
while(S[i]!='