-1

我有如下三个节点。

第一个节点 (sNodes) 包含:a,b,c,d 第二个节点 (rNodes) 包含:c,d,e,f 第三个节点 (nodes) 包含: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);
    }
}
}
4

1 回答 1

0

您提供的代码片段未完成或有错误,
(例如未使用的 sNodes、项目、比较......我找不到 i 在哪里)
,您想要做什么对我来说也不清楚。

但是让我假设你想做比较,如果不匹配,做一些复制。
然后你应该在找到不匹配的节点时打破 for strcmp 循环,
这样你就可以复制目标节点,而不仅仅是设置标志。

于 2013-10-15T03:03:09.723 回答