c - C - 比较结构和字符串的变量时出错
问题描述
我正在尝试实现一个比较两个字符串的函数。但是,即使我使用 char 指针而不是 char 数组,我也会在函数 strcmp 中得到“表达式必须是可修改的左值”。我的代码如下。
typedef enum { false, true } boolean;
struct threeGram *threeGram_array;
struct threeGram
{
const char *value;
int occurence;
};
boolean containsValue(struct threeGram array[], const char *string){
int i;
for(i = 0; i < sizeof (array) / sizeof (struct threeGram); i++){
if(strcmp(array[i].value, string) = 0){
return true;
}
}
return false;
}
解决方案
在检查相等时,C
您应该使用双等号==
,否则这将被解释为赋值。因此在这条线上:
if(strcmp(array[i].value, string) = 0){
您尝试将结果分配给函数返回值,该值是不可修改的左值。
推荐阅读
- flutter - 用户注销时如何在 Flutter 中处理 StreamProvider 的值?
- java - 如何在后台执行任务?
- wpf - WPF Datagrid Button commandParameter 在后面的代码中
- css - 样式中的 HTL 条件
- sql-server - 在 SQL Select 语句中读取 XML 值
- flutter - 最新文档未在 Firestore 中列出
- node.js - 将 Strapi 部署到 Heroku 时出现应用程序错误,但构建成功?
- python - 函数中的 task.loop 没有显示任何错误,但也无法正常工作
- python - 将张量向量附加到张量矩阵
- python-3.x - Keras-Tuner 运行时错误