Вывести уникальные значения двухмерного символьного массива - C (СИ)
Формулировка задачи:
Добрый день.
Помогите с программой.Дан двухмерный символьный массив к нему написать функцию вывода уникальных значений.
Вот что есть на данный момент :
Функция работает если значения были друг за другом, как сделать поиск по всему двумерному массиву
Листинг программы
- int sortirovka( char *array[], int n){
- int i, j,k;
- for(i=0; i<n-1; i++){
- for(j=n-1; j>i; j--){
- if(strcmp(array[j-1],array[j])==0){
- array[j]=array[j+1];
- }
- }
- }
- return 0;
- }
Решение задачи: «Вывести уникальные значения двухмерного символьного массива»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- #define N 32
- void out_unique(FILE* _o, char* a[], int n){
- int i, j;
- char* k;
- //сначало сортируем
- for(i = 1; i < n; ++i){
- k = a[i];
- j = i - 1;
- while((j >= 0) && (strcmp(k, a[j]) < 0)){
- a[j + 1] = a[j];
- --j;
- }
- a[j + 1] = k;
- }
- //далее выводим только уникальные строки
- for(i = 0; i < n; i = j){
- for(j = i + 1; j < n; ++j){
- if(strcmp(a[j], a[i]) != 0)
- break;
- }
- if((j - i) == 1)
- fprintf(_o, "%s\n", a[i]);
- }
- }
- int main(void){
- char* a[N];
- int n;
- char *i, s[] = "perl, php, js, php, ruby, js, python, ruby.";
- n = 0;
- for(i = strtok(s, " ,."); i != NULL; i = strtok(NULL, " ,."))
- a[n++] = i;
- out_unique(stdout, a, n);
- return 0;
- }
Объяснение кода листинга программы
Выводим уникальные значения двухмерного символьного массива:
- Включаем необходимые заголовочные файлы
и , также определяем размер массива N. - Создаём функцию out_unique, принимающую два аргумента: файл, куда необходимо вывести результат, и отсортированный массив.
- В функции out_unique выполняем сортировку массива методом пузырька.
- Далее, с помощью двух вложенных циклов, удаляем дубликаты, оставляя только уникальные строки.
- Выводим результат на экран.
- В функции main создаём массив типа char*, инициализируем его значениями из строки s.
- С помощью функции strtok разделяем строку на подстроки и добавляем их в массив.
- Вызываем функцию out_unique, передавая в неё указатель на первый элемент массива, его размер и файл, куда необходимо вывести результат.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д