#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
using namespace std;
int func(char *s1, char *s2) {
int i;
int l1 = strlen(s1);
int l2 = strlen(s2);
if (l1 > l2) l1 = l2;
l2 = 0;
for (i = 0; i < l1; i++, s1++, s2++)
if (*s1 == *s2) {
l2++;
if (l2 > 1) return 1;
}
return 0;
}
char *getword(char *src, char *dst) {
int l1 = strlen(src);
// пропускаем пробелы и всяк символы кроме цифрь и букви
while (*src && !(isalnum(*src))) src++;
while (*src && isalnum(*src)) {
*dst = *src;
src++; dst++;
}
*dst = '\0';
return src;
}
int main() {
char text[] = "hello salut begin rodjer green ground hellboy jorjia";
int count = 0;
char *words[30];
char dest[100];
char *p;
p = text;
cout << text << endl;
while (*p) {
p = getword(p, dest);
words[count] = new char[strlen(dest)+1];
strcpy(words[count], dest);
count++;
}
cout << "Slova imeushie bolee 2h sovp\n";
for (int x = 0; x < count-1; x++)
for (int y = x+1; y < count; y++) {
if (func(words[x], words[y])) {
cout << words[x] << " " << words[y] << endl;
}
}
for (int i = 0; i < count; i++)
delete [] words[i];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjc3RkaW8+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZnVuYyhjaGFyICpzMSwgY2hhciAqczIpIHsKICAgIGludCBpOwogICAgaW50IGwxID0gc3RybGVuKHMxKTsKICAgIGludCBsMiA9IHN0cmxlbihzMik7CiAgICBpZiAobDEgPiBsMikgbDEgPSBsMjsKICAgIGwyID0gMDsKICAgIGZvciAoaSA9IDA7IGkgPCBsMTsgaSsrLCBzMSsrLCBzMisrKQogICAgICAgIGlmICgqczEgPT0gKnMyKSB7CiAgICAgICAgICAgIGwyKys7CiAgICAgICAgICAgIGlmIChsMiA+IDEpIHJldHVybiAxOwogICAgICAgIH0KICAgIHJldHVybiAwOwp9CgpjaGFyICpnZXR3b3JkKGNoYXIgKnNyYywgY2hhciAqZHN0KSB7CiAgICBpbnQgbDEgPSBzdHJsZW4oc3JjKTsKICAgIC8vINC/0YDQvtC/0YPRgdC60LDQtdC8INC/0YDQvtCx0LXQu9GLINC4INCy0YHRj9C6INGB0LjQvNCy0L7Qu9GLINC60YDQvtC80LUg0YbQuNGE0YDRjCDQuCDQsdGD0LrQstC4CiAgICB3aGlsZSAoKnNyYyAmJiAhKGlzYWxudW0oKnNyYykpKSBzcmMrKzsKICAgIHdoaWxlICgqc3JjICYmIGlzYWxudW0oKnNyYykpIHsKICAgICAgICAqZHN0ID0gKnNyYzsKICAgICAgICBzcmMrKzsgZHN0Kys7CiAgICB9CiAgICAqZHN0ID0gJ1wwJzsKICAgIHJldHVybiBzcmM7Cn0KCmludCBtYWluKCkgewogICAgY2hhciB0ZXh0W10gPSAiaGVsbG8gc2FsdXQgYmVnaW4gcm9kamVyIGdyZWVuIGdyb3VuZCBoZWxsYm95IGpvcmppYSI7CiAgICBpbnQgY291bnQgPSAwOwogICAgY2hhciAqd29yZHNbMzBdOwogICAgY2hhciBkZXN0WzEwMF07CiAgICBjaGFyICpwOwogICAgcCA9IHRleHQ7CiAgICBjb3V0IDw8IHRleHQgPDwgZW5kbDsKICAgIHdoaWxlICgqcCkgewogICAgICAgIHAgPSBnZXR3b3JkKHAsIGRlc3QpOwogICAgICAgIHdvcmRzW2NvdW50XSA9IG5ldyBjaGFyW3N0cmxlbihkZXN0KSsxXTsKICAgICAgICBzdHJjcHkod29yZHNbY291bnRdLCBkZXN0KTsKICAgICAgICBjb3VudCsrOwogICAgfQoKICAgIGNvdXQgPDwgIlNsb3ZhIGltZXVzaGllIGJvbGVlIDJoIHNvdnBcbiI7CiAgICBmb3IgKGludCB4ID0gMDsgeCA8IGNvdW50LTE7IHgrKykKICAgICAgZm9yIChpbnQgeSA9IHgrMTsgeSA8IGNvdW50OyB5KyspIHsKICAgICAgICAgIGlmIChmdW5jKHdvcmRzW3hdLCB3b3Jkc1t5XSkpIHsKICAgICAgICAgICAgICBjb3V0IDw8IHdvcmRzW3hdIDw8ICIgIiA8PCB3b3Jkc1t5XSA8PCBlbmRsOwogICAgICAgICAgfQogICAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQogICAgICAgIGRlbGV0ZSBbXSB3b3Jkc1tpXTsKCiAgICByZXR1cm4gMDsKfQoK