szukanie słów będących metagramami

0

Mam napisać takie programy:

a) Dwa słowa nazywamy swoimi metagramami, jeśli te słowa różnią się dokładnie jedną literą( w jednym miejscu). Np. parami metagramów są ZDARZENIE i ZDERZENIE . Napisz funkcje o nazwie metagramy , której parametrem będą dwa słowa(co najwyżej 30 literowe ) i która zwróci 1 jeśli są to metagramy i 0 jeśli nie są.

b)W zbiorze **slownik.txt **zapisano plik, w którym w każdym wierszu znajduje się jedno słowo. Napisz program, który utworzy nowy zbiór niemetagramy.txt, w którym zapisze wszystkie słowa ze zbioru slownik.txt , które nie mają ani jednego metagramu.

Ma ktoś jakiś pomysł?

0

A to jakiś szczególny pomysł jest tutaj wymagany? Bo sprawa wydaje się prosta. Lecisz sobie po słowach i porównujesz litery. Jeśli w słowie różni się jedna to zwracasz 1, inaczej 0.

0

Ten program, zwróci zero, dla słów: "dwaj" i "dwa", które mogą być metagramami; z tematu nie wiadomo czy takie brać pod uwagę(o różnych długościach):

#include <stdio.h>
#include <string.h>

int metagram_check(char * str1, char * str2) {
	if (strlen(str1) != strlen(str2)) return 0;
	int cnt = 0;
	while (*str1 && *str2) {
		if (*str1 != *str2)
			cnt++;
		str1++;
		str2++;
		
	}
	if (cnt == 1)
		return 1;
	else
		return 0;
}

int main() {
  char *str1 = "zdarzenie";
  char *str2 = "zderzenie";
 
  printf("%d\n", metagram_check(str1, str2)); // -> 1
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1