C/C++

Си. Работа со строками.

Нужно считать два слова (разделенных пробелом) из первого файла и напечатать во второй файл только те буквы, которые встречаются в обоих словах ровно 1 раз.
Что сделано не верно в моей программе?
https://ideone.com/dhpwAA
Vv G
Vv G
15
вы строки считали неверно.
можно так fscanf(f,"%s%s",s1,s2);
вообще первое что нужно сделать при такой ситуации это установить точку останова и посмотреть, что у вас храниться в переменных.
В вашем варианте у вас в s1 храниться строка целиком, а во втором пустая строка. И ради всего святого, форматируйте код нормально, читать сложно.
нормально это например так https://onlinegdb.com/SyxJFFTv_
ФЖ
Фёдар Жывалеўскі
5 910
Лучший ответ
Vv G А почему нельзя считывать как я?
есть момент "в обоих словах ровно один раз". Предположим "hello world" какие буквы он должен вывести? Можно понять как н-р буква o встречается и там и там и её и надо выводить и только её. Или н-р буква h встречается один раз в первом слове, ни одного во втором но если брать оба слова - то один раз =)

На всякий вариант со вторым, но кое-какие фишки можно взять чтобы упростить первый:
Пользуясь что символы в алфавите расположены подряд (есть н-р заморочка с русскими при кодировке 866, но про неё не будем):

1 - читаете два слова как одно склеенное слово
2 - заводите массив счетчиков размером в кол-во букв в словаре
3 - пробегаете по строке, увеличивая счетчик используя символ как индекс
4 - пробегаете циклом по массиву счетчиков, если счетчик = 1 преобразуете обратно индекс в символ и выводите в файл.

Набросок (нет проверок, вместо массива счетчиков можно было бы использовать одно 64 разрядное целое и т. п.):
https://onlinegdb.com/H1Dnr5aP_
А.
Александр ...
84 764
Vv G спасибо