Я пытаюсь взять пользовательский ввод и распечатать каждое слово на отдельной строке (без дубликатов). То, что я сделал до сих пор, может принимать пользовательский ввод и печатать каждую строку отдельно в алфавитном порядке. Что мне нужно сделать прямо сейчас быть в состоянии удалить дубликаты в пределах массива, что это символ * утверждают, []Удалить повторяющиеся элементы из массива указателей C
Мой вход:
./a.out banana apple apple apple zoo cat fork
Мой выход:
apple
apple
apple
banana
cat
fork
zoo
что нужно сделайте печать одного яблока вместо трех.
Вот что я сделал до сих пор, и я комментировал часть кода, где проблема
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) {
int i, j, k, size;
size = argc -1;
char *key;
char* a[argc-1];
for (i = 2; i < argc; i++) {
key = argv[i];
j = i-1;
while (j >= 1 && strcmp(argv[j], key) > 0) {
argv[j+1] = argv[j];
j--;
}
argv[j+1] = key;
}
//Problem
//for(i = 2; i < size; i++){
// if(argv[i-1] != argv[i])
// a[i] = argv[i-1];
//}
//for(i=0; i< size; i++)
// puts(a[i]);
for(i=1; i< argc; i++)
puts(argv[i]);
return 0;
}
Сравнение указателей - это не то же самое, что сравнение строк. – jxh