今天在寫一個搜索引擎的分詞系統,是很簡單的那種,但是居然費了我一天的時間還沒完成,晚上估計還得弄一會了,但是在這個過程中,遇到了集中關於字符串數組的操作,值得和大家分享一下。
字符串數組不同於整型數組,每一個字符串所占的空間是不一樣的,不能用sizeof簡單的計算出來。下面是示例代碼:
#include <iostream><> str[] = {,,,,<< (str) / (str[
字符串數組存取方式采用了對齊原則,占用空間少的向占用空間多的靠齊,首先使用sizeof(str)首先獲得所用的所用字節數,使用sizeof(str[0])再計算數組中一個元素平均占用的字節數。然後除一下,就是元素個數,但是注意,被除的那個元素應該是所占空間最大的那個。
然後是關於統計字符串數組各個元素出現的次數:
這個是我用在統計分詞後得到的詞組各自的頻次的,但是不知道出了什麼問題,一直實現不了,雖然我知道這個確實是很簡單的一個問題。
我通過大百度找到了一種統計次數的方法,他是統計整型數組的,但是感覺很不錯,但是我暫時還沒有驗證,先貼出來吧:
#include<stdio.h><stdlib.h> a[],b[],c[]={ (i=;i<;i++=rand()()%; b[i]=; printf(,a[i]); ((i+)%==) printf((i=;i<;i++(b[i]) ++; (j=i+;j<;j++) (a[j]==a[i]) ++; b[j]=; (i=,j=;i<;i++(c[i]) printf(,j++
他用了一個統計標志,這個很適合我現在的這個問題,也希望能對大家有用吧,謝謝了。
下面是CSDN上一個很不錯的關於C++的各類總結,這個鏈接是字符串的。
http://blog.csdn.net/wangfengwf/article/details/11496141