Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 6

Слова, которые начинаются с "Sa", продублировать в круглых скобках в начале строки

29.01.2021, 16:33. Показов 1297. Ответов 9
Метки си (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте всем. У меня есть задание:
======================================== ==============
"В предложенном тексте слова, которые начинаются
с "Sa" продублировать в круглых скобках в начале строки.
Например, строка
Tom Sawyer loves adventures. He has a lot of adventures
превращается в строку
(Sawyer) Tom Sawyer loves adventures. He has a lot of adventures"

=======================ТЕКСТ============ ==============

Introduction

One Saturday afternoon Tom wanted to have an adventure
because he didn't want to think about Injun Joe. He went
to Huck and said, "I'm going to look for treasure. Do you
want to come with me?"
Tom Sawyer loves adventures. He has a lot of adventures
at home, at school, and with his friends. He has one
adventure in a cave. But why is he there? What does he
see in the cave? And why is he afraid?
Mark Twain (1835-1910) is a famous American writer.
His name was Samuel Clemens. Young Samuel lived in
Hannibal, Missouri, a small town on the Mississippi River.
He loved the river and he liked watching the big boats
on it.
Samuel loved adventures. He worked on boats on the
Mississippi River for two years. Then he went to Nevada.
He looked for treasure, but he didn't find it. He worked for
a newspaper there. His stories were in the name of Mark
Twain, and people loved them.
Later, Samuel lived in New York. His book The
Adventures of Tom Sawyer (1876) is about a young boy in
a small town in the 1800s. Huck Finn is his friend. The
Adventures of Huckleberry Finn (1884) is about Huck's
adventures. These two books are very famous.
Today, many people visit Hannibal because they want to
see Mark Twain's home and the Mark Twain Cave, the
cave in The Adventures of Tom Sawyer.

======================================== =============
Код который я додумался сделать на данный момент, а дальше чёт вообще, сижу и ничего не приходит в голову:
======================================== =============
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
37
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int main() {
 
    char word[256];
    char symbol[] = "Sa";
    FILE *in, *out;
 
    if((in = fopen("/home/sasha/Lab7/test1.txt", "r"))==nullptr)
    {
        cout << "Error opening file";
        return 0;
    }
 
    if((out = fopen("/home/sasha/Lab7/test2.txt", "w"))==nullptr)
    {
        cout << "Error opening file";
        fclose(in);
        return 0;
    }
 
    while(!feof(in)){
        fscanf(in, "%s", word);
        if ((word[0]) == symbol[0]) {
            fprintf(out, "(%s)\n", word);
 
        }
    }
    
    fclose(in);
    fclose(out);
 
    return 0;
}
======================================== ===============
Спасибо большое!

Добавлено через 3 часа 36 минут
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
37
38
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int main() {
 
    FILE *in, *out;
    char s1[256];
    char symbol[3] = "Sa";
 
    if((in = fopen("/home/sasha/Lab7/test1.txt", "r"))==nullptr)
    {
        cout << "Error opening file";
        return 0;
    }
 
    if((out = fopen("/home/sasha/Lab7/test2.txt", "w"))==nullptr)
    {
        cout << "Error opening file";
        fclose(in);
        return 0;
    }
 
    while(!feof(in)){
        fscanf(in, "%s", s1);
        fprintf(out, "%s ", s1);
        if ((s1[0]) == symbol[0]) {
            fprintf(out, "(%s) ", s1);
        }
 
    }
    
    fclose(in);
    fclose(out);
 
    return 0;
}
Немного доделал, теперь слова дублируются рядом со словами, помогите, подскажите, как слова которые были дублированы перенести в начало строки?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2021, 16:33
Ответы с готовыми решениями:

Продублировать в тексте слова, которые начинаются и заканчиваются одной и той же буквой
Дан текст, слова которого отделяются друг от друга пробелами. Продублировать в тексте слова, которые начинаются и заканчиваются одной и той...

Продублировать в тексте слова, которые начинаются и заканчиваются одной и той же буквой
Дан текст, слова которого отделяются друг от друга пробелами. Продублировать в тексте слова, которые начинаются и заканчиваются одной и той...

Вывести только те символы, которые стоят в круглых скобках
помогите сделать программу. Не понимаю как заставить ее выводить то что хочу я. нужно чтобы программа, состоящая из N символов, выводила...

9
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 18:43
Цитата Сообщение от scanfcout Посмотреть сообщение
Немного доделал, теперь слова дублируются рядом со словами, помогите, подскажите, как слова которые были дублированы перенести в начало строки?
Тебе надо сначала считать из файла строку полностью, например при помощи gets или std::getline. Потом разбить её на слова, одновременно проверяя, которые из них начинаются с Sa.
0
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 6
29.01.2021, 20:30  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Тебе надо сначала считать из файла строку полностью, например при помощи gets или std::getline. Потом разбить её на слова, одновременно проверяя, которые из них начинаются с Sa.
Только что пытался через strtok... и strtok_r... ничего не вышло, если можно, можете показать пример? А то в первые с таким сталкиваюсь, весь интернет перешурстрел...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 20:36
Цитата Сообщение от scanfcout Посмотреть сообщение
Только что пытался через strtok... и strtok_r... ничего не вышло, если можно, можете показать пример? А то в первые с таким сталкиваюсь, весь интернет перешурстрел...
А строку-то считал? А то я и этого не вижу.
scanf, он вроде читает не строку а только одно слово.
0
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 6
29.01.2021, 20:47  [ТС]
Code
1
2
3
while(!feof(in)){
        fscanf(in, "%s", s1);
        fprintf(out, "%s ", s1);
ну вот, этим фрагментом когда, я считал весь текст, вроде нашёл способ , как найти слова которые начинаются на 'Sa', но не могу понять, как слова засунуть в начало строки.
Получается в итоге такой текст, слова которые начинаются на 'Sa', выделились скобками и продублировались, но рядом с этими же словами, а мне нужно их в начало строки:
=========Выходной файл==============
Introduction One Saturday (Saturday) afternoon Tom wanted to have an adventure because he didn't want to think about Injun Joe. He went to Huck and said, "I'm going to look for treasure. Do you want to come with me?"6 Tom Sawyer (Sawyer) loves adventures. He has a lot of adventures at home, at school, and with his friends. He has one adventure in a cave. But why is he there? What does he see in the cave? And why is he afraid? Mark Twain (1835-1910) is a famous American writer. His name was Samuel (Samuel) Clemens. Young Samuel (Samuel) lived in Hannibal, Missouri, a small town on the Mississippi River. He loved the river and he liked watching the big boats on it.6 Samuel (Samuel) loved adventures. He worked on boats on the Mississippi River for two years. Then he went to Nevada. He looked for treasure, but he didn't find it. He worked for a newspaper there. His stories were in the name of Mark Twain, and people loved them. Later, Samuel (Samuel) lived in New York. His book The Adventures of Tom Sawyer (Sawyer) (1876) is about a young boy in a small town in the 1800s. Huck Finn is his friend. The Adventures of Huckleberry Finn (1884) is about Huck's adventures. These two books are very famous. Today, many people visit Hannibal because they want to see Mark Twain's home and the Mark Twain Cave, the cave in The Adventures of Tom Sawyer. (Sawyer.) Sawyer. (Sawyer.)
======================================

Добавлено через 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
37
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main() {
 
    FILE *in, *out;
 
    char s1[256];
    char symbol[3] = "Sa";
    
    if((in = fopen("/home/sasha/Lab7/test1.txt", "r"))==nullptr)
    {
        cout << "Error opening file";
        return 0;
    }
 
    if((out = fopen("/home/sasha/Lab7/test2.txt", "w"))==nullptr)
    {
        cout << "Error opening file";
        fclose(in);
        return 0;
    }
 
    while(!feof(in)){
        fscanf(in, "%s", s1);
        fprintf(out, "%s ", s1);
        if ((s1[0]) == symbol[0]) {
            fprintf(out, "(%s) ", s1);
        }
    }
    
    fclose(in);
    fclose(out);
 
    return 0;
}
Этим фрагментом кода, я прочитал полностью весь файл с текстом, провёл проверку на слова с 'Sa' , и записал в выходной файл:
C
1
2
3
4
5
6
7
    while(!feof(in)){
        fscanf(in, "%s", s1);
        fprintf(out, "%s ", s1);
        if ((s1[0]) == symbol[0]) {
            fprintf(out, "(%s) ", s1);
        }
    }
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 20:48
Цитата Сообщение от scanfcout Посмотреть сообщение
ну вот, этим фрагментом когда, я считал весь текст, вроде нашёл способ , как найти слова которые начинаются на 'Sa', но не могу понять, как слова засунуть в начало строки.
Потому что тебе не слова считывать из файла, а строки
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Тебе надо сначала считать из файла строку полностью, например при помощи gets или std::getline. Потом разбить её на слова, одновременно проверяя, которые из них начинаются с Sa.
0
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 6
29.01.2021, 21:06  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Потому что тебе не слова считывать из файла, а строки
Я это понимаю, но не могу догнать, как это кодом написать, целый день сижу мучаюсь, ладно, спасибо за помощь)
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 21:09
Цитата Сообщение от scanfcout Посмотреть сообщение
Я это понимаю, но не могу догнать, как это кодом написать, целый день сижу мучаюсь, ладно, спасибо за помощь)
Просто вместо fscanf поставь fgets с соответствующими параметрами
0
0 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 6
29.01.2021, 22:35  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Просто вместо fscanf поставь fgets с соответствующими параметрами
Текст стал показываться адекватно, но в итоге получается:
======================================== ==
Introduction

One Saturday afternoon Tom wanted to have an adventure
because he didn't want to think about Injun Joe. He went
to Huck and said, "I'm going to look for treasure. Do you
want to come with me?"
Tom Sawyer loves adventures. He has a lot of adventures
at home, at school, and with his friends. He has one
adventure in a cave. But why is he there? What does he
see in the cave? And why is he afraid?
Mark Twain (1835-1910) is a famous American writer.
His name was Samuel Clemens. Young Samuel lived in
Hannibal, Missouri, a small town on the Mississippi River.
He loved the river and he liked watching the big boats
on it.
Samuel loved adventures. He worked on boats on the
(Samuel loved adventures. He worked on boats on the
)Mississippi River for two years. Then he went to Nevada.
He looked for treasure, but he didn't find it. He worked for
a newspaper there. His stories were in the name of Mark
Twain, and people loved them.
Later, Samuel lived in New York. His book The
Adventures of Tom Sawyer (1876) is about a young boy in
a small town in the 1800s. Huck Finn is his friend. The
Adventures of Huckleberry Finn (1884) is about Huck's
adventures. These two books are very famous.
Today, many people visit Hannibal because they want to
see Mark Twain's home and the Mark Twain Cave, the
cave in The Adventures of Tom Sawyer.
cave in The Adventures of Tom Sawyer.
========================================


C
1
2
3
4
5
6
7
while(!feof(in)){
       fgets(str, 255, in);
       fprintf(out, "%s", str);
       if((str[0]) == symbol[0]){
           fprintf(out, "(%s)", str);
       }
    }
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 23:08
Цитата Сообщение от scanfcout Посмотреть сообщение
Текст стал показываться адекватно, но в итоге получается:
Теперь можешь воспользоваться функцией strtok
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2021, 23:08
Помогаю со студенческими работами здесь

Напечатать все символы, которые находятся в круглых скобках
помогите написать код. нужно напечатать все символы что находятся в круглых скобках. вроде получилось написать но без расчета на то что...

Файлы: записать числа из строк, которые находятся в круглых, квадратных и фигурных скобках, в массив
В общем, хочу записать числа из строк, которые находятся в круглых, квадратных и фигурных скобках в массив, но что - то не получается. У...

Строки. Подсчитать слова, которые начинаются с буквы B
Читайте строки. Напишите программу, которая подсчитывает слова, которые начинаются с буквы B

Слова строки, которые начинаются на гласную и их количество
Помогите на билдере написать программу процедурно. Которая будет выводить все слова строки, которые начинаются на гласную и посчитать их...

Упорядочить список в алфавитном порядке, записав после каждого слова в круглых скобках количество букв в нем
Помогите сделать задачу, на тему программирование строкового, символьного типа данных. 2. Пользователь вводит список слов,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru