我有三个节点,如下所示。
第一个节点(sNodes)包含:a,b,c,d第二个节点(rNodes)包含:c,d,e,f第三个节点(节点)包含:a,b,c,d
我想从第二个节点添加不在第三个节点中的任何节点。我很难用 C 语言做到这一点,因为我只是一个初学者。我尝试在 for 循环中使用 strcmp 方法,但无法以这种方式解决。任何帮助将不胜感激。
typedef struct {
char emails[(LENGTH*2)+1];
}Node;
Node nodes[GRAPH_SIZE + 1], sNodes[(GRAPH_SIZE + 1) / 2], rNodes[(GRAPH_SIZE + 1)/2];
void addNode(){
int j =0,k = 0, compare, total;
char item[] = {0};
for(j = 0; j <= GRAPH_SIZE/2; j++){
total = 0;
for(k = 0; k <= GRAPH_SIZE/2; k++){
if(strcmp(rNodes[j].emails, nodes[k].emails) != 0){
total = 1;
}else {
total = 0;
}
}
if(total == 1){
strcpy(nodes[i].emails, rNodes[j].emails);
}
}
}
您提供的代码片段不完整或有问题,
(如未使用的sNodes,项目,比较...我找不到我在哪里)
而你想做什么,我也不清楚。
但是让我假设你想做比较,如果不匹配,做一些副本。
然后你应该在发现不匹配节点时中断 for strcmp 循环,
因此,您可以复制目标节点,而不仅仅是设置标志。