字符数组输出额外的字符



你好,这是我的代码的一部分,我正在尝试实现Morris-Pratt算法。当我比较我的变量时,如果发现它们不匹配,这是因为我的一个变量"Temp"在数组末尾添加了额外的字符。这是我的代码...

        // Calculate the next talbe
        char test[searchLen];
        for(int i = 0; i < searchLen; i++)
        {   
            test[i] = fileContent[currPos+i];
        }
        cout << "SEARCHLEN: " << searchLen << endl;
        cout << "TEST: " << 't' << 't' << test << endl;
        cout << "SEARCH: " << 't' << search << endl;
        cout << strcmp(test,search) << endl << endl;
        // Determine if a match is detected
        if(strcmp(test,search)==0)
        {
            cout << "----------------------> Match detected at: " << currPos << endl;
        }
        currPos ++;
    }
    return numberOfComparisons;
}

输出如下所示...

SEARCHLEN: 8
TEST:       athsoutg5?h
SEARCH:     brilling
-1

如您所见,5?H不应该在那里,并且正在破坏我的代码。

您需要添加一个空终止符。

   char test[searchLen + 1];
   test[searchLen] = '';
看起来

你的字符串没有以\0结尾,也许你忘了复制它/把它放在那里?

相关内容

  • 没有找到相关文章

最新更新