Я работал над этим некоторое время (в C) и не могу понять это. У меня есть буфер, содержащий массив символов. Я использовал qsort для сортировки массива, и теперь все в правильном порядке. Теперь мне нужно удалить дубликаты (или просто распечатать список без дубликатов). Существует оговорка: символы группируются в группы из N символов (N, заданных пользователем). Таким образом, это не просто сравнение одного символа рядом с другим; он сравнивает их группы друг с другом.memcmp для сравнения сегментов массива (удалить дубликаты)
Так например: если вход 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++;
}
}
}
, где буфер представляет собой массив, nValue является N, BufferSize является общее количество элементов в массиве. Я продолжаю получать ошибку сегментации при запуске кода.
Спасибо за помощь, всем!
'& buffer [i]' и '& buffer [i + nValue]' также будет работать. –
ЭТО РАБОТАЕТ. Спасибо большое!! Нет, мой компилятор (gcc) не предупредил меня об этом – pauliwago