我有一个包含此函数的较大任务。这里是说明;检查char *类型的字符串是否包含另一个字符串
定义名为isPartOf C++函数,用两个参数指针C字符串 (即char *类型的,而不是从尚未详细声明C++数据 类型字符串),并返回一个布尔值。
实质上,函数应该检查第一个参数指针指向它的字符串 是否是第二个参数指针指向的字符串的一部分。例如:isPartOf(“heart”,“hypertensive heart disease”)返回true isPartOf(“screw”,“Case Involving wheelchair”)返回假回。
我一直在学习C一年,只开始学习C++,我发现很难理解'char *'和参数的使用。我花了一段时间才明白指针,现在参数已经把我抛弃了。我试过这个代码,可能是所有可能的迭代*和&只是为了看看它会工作,但它不会。
#include <iostream>
using namespace std;
void isPartOf(char *, char *);
int main()
{
char * Word;
char * Sentence;
cout << "Please enter a word: ";
cin >> Word;
cout << endl << "Please enter a sentence: ";
cin >> Sentence;
cout << endl;
isPartOf(Word, Sentence);
if (isPartOf(Word, Sentence))
{
cout << "It is part of it";
}
else
{
cout << "It is not part of it";
}
}
void isPartOf(char a, char b)
{
}
我的两个主要问题是:
- 参数在这种情况下如何工作?
- 是否有函数会检查字符串中是否存在字符串?如果不是,我该如何开始编码这种功能?
你的声明顶部不匹配日底部的定义。参数ypes应该是相同的。 – 0x499602D2 2014-11-23 14:59:57
简单的解决方案:循环两个字符串。当找到与另一个字符串匹配的字符时,请增加一个计数变量。如果不是,则将其重置为零。在循环结束时检查count是否等于另一个字符串的长度。 – 0x499602D2 2014-11-23 15:02:28
答案#2 - 在C中,是:strstr。看看boyer-moore算法或http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm。 – cup 2014-11-23 17:29:57