我已经研究了一段时间(在 C 中)并且无法弄清楚。我有一个包含字符数组的缓冲区。我已经使用 qsort 对数组进行排序,现在一切都井井有条。我现在需要删除重复项(或者只是打印出没有重复项的列表)。有一个警告:字符被分组为 N 个字符组(N 由用户给出)。因此,这不仅仅是将一个字符与另一个字符进行比较;它正在将它们的组相互比较。
例如:如果输入是 AADDBBEECCEE 并且用户给出的 N 是 2,则结果将是 AABBCCDDEE(删除了 EE 之一)。
我知道我必须使用 memcmp,但我对语法感到困惑。我正在努力:
i=0;
int result;
int k;
while(i<bufferSize-nValue){
result = memcmp(buffer[i], buffer[i+nValue], nValue);
if(result==0){
i=i+nValue;
}
else{
for(k=0; k<nValue; k++){
printf("%c",buffer[i]);
i++;
}
}
}
其中 buffer 是数组,nValue 是 N,bufferSize 是数组中元素的总数。运行代码时,我不断收到分段错误。
谢谢大家的帮助!