私はしばらくの間(Cで)これに取り組んできましたが、それを理解することはできません。文字の配列を含むバッファがあります。qsortを使用して配列を並べ替えましたが、すべて適切な順序になっています。重複を削除する必要があります(または重複せずにリストを印刷するだけです)。注意点があります。文字はN個の文字(ユーザーが指定したN)のグループにグループ化されます。つまり、1つの文字を次の文字と比較するだけではありません。それらのグループを互いに比較しています。
たとえば、入力がAADDBBEECCEEで、ユーザーが指定したNが2の場合、結果はAABBCCDDEE(EEの1つが削除されたもの)になります。
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は配列内の要素の総数です。コードを実行すると、セグメンテーション違反が発生し続けます。
皆さん、助けてくれてありがとう!