注册 登录
编程论坛 数据结构与算法

怎么求字符串的个数 比如说 software字串的个数

世界模型 发布于 2012-12-16 18:15, 710 次点击
如题
9 回复
#2
世界模型2012-12-16 18:16
PS:怎么求字符串的字串的个数
#3
世界模型2012-12-18 16:49
PS:怎么求一个字符串的子串个数 比如说 software的子串的个数
#4
寒风中的细雨2012-12-19 09:09
回复 3楼 世界模型
只是需要计算  有多少个子串  并不需要把子串输出来吧
#5
世界模型2012-12-19 22:09
回复 4楼 寒风中的细雨
是的
#6
世界模型2012-12-22 17:54
回复 4楼 寒风中的细雨
等待中 。。。
#7
yuccn2012-12-23 11:01
枚举吧
int EnumString(char *str)
{
    int nLen = strlen(str);
    char *pTempBuf = new char[nLen + 1];
    int nCount = 0;

    for (int i = 0; i < nLen; i++)
    {
        char *pSubStr = str + i;
        for (int j = 0; j < nLen - i; j++)
        {
            memcpy (pTempBuf, pSubStr, (j+1) * sizeof(char));
            pTempBuf[j+1] = L'\0';
            nCount ++;

            printf("第 %d 个子字符串:%s.\n", nCount, pTempBuf);               
        }
    }
    delete []pTempBuf;
    return nCount;
}

int main()
{
    char *pString = "123456789";
    EnumString(pString);
}
#8
yuccn2012-12-23 11:03

C:\Users\yuccn>C:\d\temp\test\Debug\test.exe
第 1 个子字符串:1.
第 2 个子字符串:12.
第 3 个子字符串:123.
第 4 个子字符串:1234.
第 5 个子字符串:12345.
第 6 个子字符串:123456.
第 7 个子字符串:1234567.
第 8 个子字符串:12345678.
第 9 个子字符串:123456789.
第 10 个子字符串:2.
第 11 个子字符串:23.
第 12 个子字符串:234.
第 13 个子字符串:2345.
第 14 个子字符串:23456.
第 15 个子字符串:234567.
第 16 个子字符串:2345678.
第 17 个子字符串:23456789.
第 18 个子字符串:3.
第 19 个子字符串:34.
第 20 个子字符串:345.
第 21 个子字符串:3456.
第 22 个子字符串:34567.
第 23 个子字符串:345678.
第 24 个子字符串:3456789.
第 25 个子字符串:4.
第 26 个子字符串:45.
第 27 个子字符串:456.
第 28 个子字符串:4567.
第 29 个子字符串:45678.
第 30 个子字符串:456789.
第 31 个子字符串:5.
第 32 个子字符串:56.
第 33 个子字符串:567.
第 34 个子字符串:5678.
第 35 个子字符串:56789.
第 36 个子字符串:6.
第 37 个子字符串:67.
第 38 个子字符串:678.
第 39 个子字符串:6789.
第 40 个子字符串:7.
第 41 个子字符串:78.
第 42 个子字符串:789.
第 43 个子字符串:8.
第 44 个子字符串:89.
第 45 个子字符串:9.
#9
yuccn2012-12-23 11:04
上面的算法没有考虑可能重复的字串的,
比如 1111111111111,这些不知道你是否需要去除重复的字串,如果要,就先用一个缓存保存每一个枚举到的字串,下个一枚举到的就先查找是否存在,如果存在就不保存了,不存在在保存。枚举完毕在输出就行了
#10
世界模型2012-12-23 15:55
回复 9楼 yuccn
谢谢 啦
1