如何使用strcmp_function
how can I use strcmp_function
我写了一个函数来查找文本中的特定单词,但我遇到了一个问题,我使用strcmp_function来获取const char参数,而[]不是cons char。我如何在这个程序中使用这个函数?(w表示单词)
int comparision(const char sentence[ ],char *w)
{
int i, length=0, c=0, l=0;
int j,count=0;
char a[20]={'0'};
length= strlen(sentence);
l= strlen(w);
for (i=0; i<length; i++)
{
if (sentence[i] == ' '||sentence[i] == 't'||sentence[i] == 'n')
{
for(j=0;j<l;j++)
a[j]=sentence[j+i+1];
a[j+1]=' ';
if( strcmp(a,w)==0)
count++;
}}
return count;
}
为什么不尝试做一些类似的事情
int i = 0;
while (sentence[i] != ' ')
{
if (strncmp(&sentence[i], word, l) == 0)
{
count += 1;
i += l;
}
else
i += 1;
}
return (count);
您希望有任何问题,因为strncmp只读取数组
您有这个功能:
int comparision(const char sentence[ ],char *w)
在函数的参数列表中,用类似数组的语法声明的参数实际上是一个指针。上述函数声明与完全相同
int comparision(const char *sentence,char *w)
即使它是一个数组,当用作表达式时,数组的名称也与指向数组中第一个元素的指针相同,所以这很好。
这意味着你可以这样做:
char str1[] = "Hello";
char *str2 = "Hello";
int equal = strcmp(str1, str2) == 0;
当将str1传递给strcmp时,str1会衰减为指针,因此与完全相同
int equal = strcmp(&str1[0], str2) == 0;
&str[0]
是指向str1中第一个元素的指针,类型为char *
即您可以使用strcmp。这应该回答你的问题——你也提到你有问题,但没有提到问题是什么或你打算做什么,所以。。。。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- Confusion: decltype vs std::function
- 为什么 std::function 可以作为 std::not2 的参数?
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 传递给std::function template的template参数究竟代表什么
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- "no matching function for call to 'Vector::Vector'"错误
- 如何在向量中删除 std::function<void()>?
- 不断"Attempting to reference a deleted function"
- 将函数包装器转换为 std::function
- 类型擦除的std::function与虚拟函数调用的开销
- C++ std::function 对于类 exept 的所有实例都是空的(只有 Visual2019 编译器问题)
- 如果模板没有可变参数,则 Lambda 被推导出为 std::function
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 模板规范获取'Ambiguous call to overloaded function'
- 将 lambda 表达式传递给 std::function in C++
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?