Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
#1

Напечатать только те буквы слов, которые встречаются в обоих словах только один раз - C++

21.05.2010, 16:33. Просмотров 1653. Ответов 16
Метки нет (Все метки)

Пожалуйста помогите!!!!задача на строки на С.Даны 2 слова.Напечатать только те буквы слов,которые встречаются в обоих словах только один раз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2010, 16:33     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз
Посмотрите здесь:
C++ Напечатать только те буквы слов, котрые встречаются в обоих словах только один раз
Напечатать только те символы, которые встречаются в обоих словах C++
Напечатать только те символы, которые встречаются в обоих словах одновременно C++
C++ Напечатать слова, которые встречаются в двух предложениях только один раз (Pascal -> C++)
C++ Задан текст. Напечатать буквы этого текста, которые встречаются только 1 раз
Выбрать из текста только те символы, которые встречаются в нем только один раз C++
C++ Напечатать только те символы, которые встречаются только в одном из слов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 17:45     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Что-то в этом роде...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
 
void num_of_char(char *word1, char *word2, int len1, int len2, int *count)
{
    int i, j;
    
    for (i = 0; i < len1; i++)
        for (j = 0; j < len2; j++)
            if (word1[i] == word2[j])
                count[word1[i] - 97]++;
}
 
int main()
{
    char word1[20], word2[20];
    int len1, len2;
    int count[26] = {0};
    int i;
    
    printf("Vvedite slovo 1: ");
    gets(word1);
    printf("Vvedite slovo 2: ");
    gets(word2);
    
    len1 = strlen(word1);
    len2 = strlen(word2);
    
    num_of_char(word1, word2, len1, len2, count);
    
    for (i = 0; i < 26; i++)
        if (count[i] == 1)
            printf("%c", i + 97);
    
    getch();
    return 0;
}
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
21.05.2010, 18:27  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #3
void num_of_char(char *word1, char *word2, int len1, int len2, int *count) это функция же да?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 18:28     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #4
Да)))
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
21.05.2010, 18:32  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #5
А вы не могли бы помощь с задачей на файлы?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 18:33     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #6
Мог бы)) Задачу в студию
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
21.05.2010, 18:39  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #7
Имеется текстовый файл.Нужно удалить из него первую строку ,в конце которой вопросительный знак.Результат записать в новый файл.Помогите пожалуйста))
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 19:02     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
 
int main()
{
    FILE *in;
    FILE *out;
    
    if ((in = fopen("1.txt", "r")) == NULL)
        return -1;
    
    if ((out = fopen("2.txt", "w")) == NULL)
        return -1;
    
    char buf[128];
    int key = 0;
    
    while (feof(in) == 0)
    {
        fgets(buf, 128, in);
        
        if (key == 0)
        {
            if (buf[strlen(buf) - 2] == '?')
            {
                key = 1;
                continue;
            }
        }
        
        fputs(buf, out);
    }
    
    fclose(in);
    fclose(out);
    return 0;
}
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
21.05.2010, 19:14  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #9
у меня вопрос))return -1;почему -1?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.05.2010, 19:40     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #10
Отлов ошибок. В случае успешного завершения функция main должна вернуть 0. если код возврата -1, значит, в ходе работы произошла ошибка
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
26.05.2010, 17:11  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #11
Извините,у меня к вам вопрос.Я запускала вашу задачу,но работает не совсем правильно.Она не удаляет строку,в конце которой вопросительный знак.Не могли бы вы помощь .В чем причина?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.05.2010, 17:31     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #12
По условию она и не должна была именно удалить строку в том же файле. Она должна была создать новый файл, а в него переписать всё строки старого, за исключением первой строки, оканчивающейся вопросительным знаком.
Например, входной файл:
Код
asd
zxc.
qwe
fgfgf
cvb/
sdasdasdasds?
ert?
asd.
tytytyty
Выходной файл получился такой:
Код
asd
zxc.
qwe
fgfgf
cvb/
ert?
asd.
tytytyty
Таким образом, была удалена строка sdasdasdasds?, т.е. первая строка во входном файле, которая оканчивается вопросительным знаком.
Или у вас программа не выполняет даже этого?
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
26.05.2010, 17:43  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #13
Нет она этого не выполняет.Она просто переписывает те же самые строки из первого файла во второй.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.05.2010, 20:08     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #14
Возможно, поможет изменение этой строки
C
1
if (buf[strlen(buf) - 2] == '?')
на эту
C
1
if (buf[strlen(buf) - 1] == '?')
Добавлено через 7 минут
А ещё лучше на такую
C
1
if ((buf[strlen(buf) - 1] == '?') || (buf[strlen(buf) - 2] == '?'))
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
26.05.2010, 20:12  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #15
Так я уже пробовала.Все равно не получается((
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.05.2010, 20:36     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #16
Покажите содержимое входного файла.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2010, 21:02     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз
Еще ссылки по теме:
Даны два слова, напечатать только те символы, которые встречаются только в одном из слов C++
C++ Даны два слова. Напечатать только те буквы слов, которые есть только в одном из них
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте C++
C++ Элементы массива, которые встречаются только один раз
Оставить в строке только те символы, которые встречаются один раз C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ILNARA
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 24
26.05.2010, 21:02  [ТС]     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз #17
Cпасибо огромное,когда if ((buf[strlen(buf) - 1] == '?') || (buf[strlen(buf) - 2] == '?')) работает))
Yandex
Объявления
26.05.2010, 21:02     Напечатать только те буквы слов, которые встречаются в обоих словах только один раз
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru