私はこれを(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]'も動作します。 –
ITは働いていました。どうもありがとうございます!!いいえ、私のコンパイラ(gcc)はそれについて私に警告しなかった – pauliwago