- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
因此,对于我的 C
代码,我编写了一个二叉搜索树,它接受一个名为 node 的 typedef 结构,该结构具有 char* 名称和 char* 电话。我在这段代码中所做的是将其放入二叉搜索树中,然后按字母顺序输出列表,旁边是 phoneNum。它有效,但我收到错误
警告:指针和整数之间的比较
我该怎么做才能解决这个问题?
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <stdbool.h>
#include <string.h>
#include <malloc.h>
#define MAX 10
char* nameArray[] = {"George", "Zoey", "Hannah", "David", "Avery",
"Justin", "Sasha", "Babara", "Steve", "Garnett", NULL};
char* number[] = {"610-11-1212", "508-123-1000", "617-555-1212",
"818-919-8100", "710-777-1170", "310-333-1300", "510-555-1001","333-310-3201", "445-440-0044", "220-210-2210", NULL};
int flag;
typedef struct node
{
char* name;
char* phoneNum;
struct node * left;
struct node * right;
} node_t;
//int compareStrings(char* str1, char* str2){return (strcmp(str1, str2));}
void insert(node_t * tree, char* name, char* phoneNum);
void print_tree_inorder(node_t * current);
s
int main()
{
int sum = 0;
node_t * test_list = malloc(sizeof(node_t));
/* set values explicitly, alternative would be calloc() */
test_list->name = "";
test_list->phoneNum = "";
test_list->left = NULL;
test_list->right = NULL;
for(int i = 0; i<MAX; i++){
insert(test_list,nameArray[i],number[i] );
}
printf("\n In order\n");
print_tree_inorder(test_list);
}
void insert(node_t * tree, char* name, char* phoneNum)
{
if (tree->name == 0)
{
/* insert on current (empty) position */
tree->name = name;
tree->phoneNum = phoneNum;
}
else
{
if ( strcmp(tree->name, name) < tree->name) //here
{
/* insert left */
if (tree->left != NULL)
{
insert(tree->left, name, phoneNum);
}
else /* no left nodes*/
{
tree->left = malloc(sizeof(node_t));
/* set values explicitly, alternative would be calloc() */
tree->left->name = name;
tree->left->phoneNum = phoneNum;
tree->left->left = NULL;
tree->left->right = NULL;
}
}
else /*add node to right */
{
if ( strcmp(tree->name, name) >= tree->name) //here
{
/* insert right */
if (tree->right != NULL)
{
insert(tree->right, name, phoneNum);
}
else
{
tree->right = malloc(sizeof(node_t));
/* set values explicitly, alternative would be calloc() */
tree->right->name = name;
tree->right->phoneNum = phoneNum;
tree->right->left = NULL;
tree->right->right = NULL;
}
}
}
}
}
void print_tree_inorder(node_t * current) {
if (current == NULL) return;
print_tree_inorder(current->left);
printf(" %s %s\n", current->name, current->phoneNum);
print_tree_inorder(current->right);
}
最佳答案
来自手册http://man7.org/linux/man-pages/man3/strcmp.3.html :
The strcmp() function compares the two strings s1 and s2. It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
所以你应该将 strcmp 的结果与 0 进行比较,而不是与字符串进行比较。
关于c - 如何修复警告 : comparison between pointer and integer in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52913533/
我有六个字符串变量,即 str11、str12、str13、str21、str21 和 str23。 我需要比较这些变量的组合。 我必须检查的组合是 str11 -- str12 -- str13 作
场景:我为各自的“节头”(存储为字符串)执行了一些任务,该任务的结果必须针对相同的相应“现有节头”(存储为字符串)保存 如果相应任务的“Section Header”是“现有 Section Head
我创建了一个类如下: public class StringMatch { public int line_num; public int num_of_words; } 我已经创建了一个
有没有人在使用 Pandas 时解决了这个 pylint 问题? C:525,59: Comparison to True should be just 'expr' or 'expr is True
关注 Arthur's suggestion ,我换了我的Fixpoint相互的关系 Inductive关系“建立”了游戏之间的不同比较,而不是“深入研究”。 但现在我收到一条全新的错误消息: Err
计算机如何执行值相等比较?它是否从最小的位开始逐位比较值,并在遇到两个不同的位时停止?还是从最高位开始?无论在何处/何时找到两个不同的位,它都会遍历所有位吗? 最佳答案 当您用高级语言(例如 c)编写
在这个例子中, > (= 1 1) #t > (= 'a 'a) *** ERROR IN (console)@2.1 -- (Argument 1) NUMBER expected (= 'a 'a
这是我的一个个人项目,我不知道从哪里开始,因为它远远超出了我的舒适区。 我知道有一些语言学习软件可以让用户记录他或她的声音并将发音与该语言的母语者进行比较。 我的问题是,如何实现这一目标? 我的意思是
我需要比较使用相同的编译器/标志进行编译的2个可执行文件和/或共享对象,并确认它们没有更改。我们在一个受监管的环境中工作,因此对于准确地确定可执行文件的哪些部分已发生更改,对于进行测试非常有用。 由于
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我有两个字符缓冲区,我正在尝试比较它们的一部分。我有一个奇怪的问题。我有以下代码: char buffer1[50], buffer2[60]; // Get buffer1 and buffer2
问题的澄清/总结——我们正在寻找: 托管错误跟踪系统, 使用起来和 lighthouse/github/launchpad 一样方便, 可以处理附件, 集成电子邮件通知和操作(在提交消息中隐含操作),
我相信 Stackoverflow 上有很多软件测试工程师、算法验证工程师。有人可以告诉我在以下情况下如何进行。 假设我们有一个乳房 X 线照片和 5 种不同的算法,这些算法将这个乳房 X 光照片作为
我已经开始阅读Algorithms了,我一直想知道,当处理相同类型的基元时,哪个是更昂贵的操作,赋值或比较?语言之间的差异是否很大? 最佳答案 微观优化几乎总是错误的做法。除非程序运行太慢,否则不要启
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我在这里看到了一些与确定文件相似性相关的问题,但它们都与特定域(图像、声音、文本等)相关联。作为解决方案提供的技术需要了解所比较文件的基础文件格式。我正在寻找的是一种没有此要求的方法,其中可以比较任意
我需要比较两个 var -> integer 形式的规则列表,以了解不匹配的情况。 判断是否存在lhs相同而rhs不同的规则。 例如: {a->3, b->1, c->4} ~ ??? ~ {a->3
我看到了 MEF 和 Lua 之间的相似之处。两者都允许您注册方法并根据需要进行部署。 MEF 和 Lua 都是 IoC/依赖注入(inject)的形式吗? 最佳答案 我假设您了解这些技术之间的巨大差
我找到了 Digital persona Finger FX 开源项目,它允许我提供指纹图像(位图)并将指纹细节数据保存在 ISO/IEC 19794-2:2005 中 格式。 https://git
ImageMagick库中是否有任何相等谓词函数?我想比较两个图像,并找出它们是否完全相同(像素的所有颜色都相同)或有什么不同。 我环顾四周,但似乎没有这样的功能。我应该自己使用像素迭代器编写函数吗?
我是一名优秀的程序员,十分优秀!