Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
1

По одному слову поочередно из каждой строки записать в третью

07.12.2010, 18:31. Показов 1061. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток. Помогите плиз, ибо я начинающий программист. Даны два предложения char st1,st2, любого содержания, мне надо составить программу так, чтобы по одному слову поочередно из каждой строки записывалось в третью st3.Заранее говорю Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2010, 18:31
Ответы с готовыми решениями:

Записать текст лесенкой(по одному слову в строке)
вот задача надо написать прогу на паскале. Имеется стихотворный текст(в строке не более...

Сформировать файл g, записав в каждой его в строке по одному слову из файла f
Здравствуйте. Дан текстовый файл f. Определить количество слов в файле. Сформировать файл g,...

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

Ошибка в программе, которая печатает содержимое своего ввода, помещая по одному слову на каждой строке
#include <stdio.h> #define within 1 /*внутри слова*/ #define outside 0 /*снаружи слова*/ int...

8
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
07.12.2010, 19:28 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
38
#include <stdio.h>
#include <string.h>
 
#define MAXSIZE 256
#define _MAXSIZE MAXSIZE * 2
#define DELIM " \n\t;:,.!?"
 
int main(void)
{
    char sen1[MAXSIZE], sen2[MAXSIZE], *con_wrds[_MAXSIZE];
    int j = 0, cnt = 0;
    printf("Enter first sentence: \n\t-> ");
    gets(sen1);
    printf("Enter second sentence: \n\t-> ");
    gets(sen2);
 
    printf("\nUnion sentence: \n\t-> ");
    for(char *p = strtok(sen1, DELIM); p ; p = strtok(NULL, DELIM))
    {
        con_wrds[j] = p;
        j += 2;
        ++cnt;
    }
 
    j = 1;
    for(char *p = strtok(sen2, DELIM); p; p = strtok(NULL, DELIM))
    {
        con_wrds[j] = p;
        j += 2;
        ++cnt;
    }
 
    for(int i = 0; i < cnt; ++i)
    {
        printf("%s ", con_wrds[i]);
    }
    return 0;
}
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
11.12.2010, 17:25  [ТС] 3
Вау, блестяще!!! Только мне не понятны функции #define....Можно ли их как-нибудь заменить просто переменными?
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
15.12.2010, 17:20  [ТС] 4
Поясните пожалуйста какую роль здесь играет звездочка? char *p = strtok(sen2, DELIM)
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
15.12.2010, 17:23 5
Костяныч, Почитай про функцию strtok() и сразу все поймеш.
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
15.12.2010, 18:06  [ТС] 6
Ааа понял...что значит DELIM в этой функции? И самый последний вопрос:если я считываю с файла текст к примеру f=fopen("data.txt","r") , как мне этот текст засунуть в массив, чтобы перейти к коду, который ты написал?
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
17.12.2010, 18:02  [ТС] 7
А почему у меня только два первых слова отображаются и все?
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 18:07 8
Костяныч, Незнаю, у меня даный код работает.
Миниатюры
По одному слову поочередно из каждой строки записать в третью  
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.12.2010, 19:30  [ТС] 9
Да все работает))))Я эту программу приспособил под файлы...считывает с двух файлов, записывает в третий...выдает ерунду, почему?
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
39
40
41
42
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
#define DELIM " \n\t;:,.!?"
int main()
{
    FILE *f1;
        f1= fopen("Text1.txt","r");
    FILE *f2;
        f2= fopen("Text2.txt","r");
    FILE *f3;
        f3= fopen("Text3.txt","w");
    char pr1[100],pr2[100],*pr3[20];
    int j=0,all=0;
    fscanf(f1,"%s",&pr1);
    fscanf(f2,"%s",&pr2);
    for(char *p=strtok(pr1,DELIM); p; p=strtok(NULL, DELIM))
    {
         pr3[j]=p;
         j+=2;
         ++all;
    }
    j=1;
    for(char *p=strtok(pr2,DELIM); p;p=strtok(NULL, DELIM))
    {
         pr3[j]=p;
         j+=2;
         ++all;
    }
    for(int i=0;i<all;i++)
    {
        printf("%s ",pr3[i]);
    }
    fprintf(f3,"%s ",pr3);
    fclose(f3);
    fclose(f2);
    fclose(f1);
   _getch();
}
0
20.12.2010, 19:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2010, 19:30
Помогаю со студенческими работами здесь

Записать в файл поочередно по две строки из двух других файлов
В редакторе создайте 2 текстовых файла, внесите в первый файл 10 строк произвольноготекста и во...

В третью строку массива записать сумму элементов первой и второй строки
Помогите пожалуйста. Массив размера 3х3. В третью строку записать сумму элементов первой и второй...

Получить третью матрицу путём умножения элемента каждой строки первой на наибольший элемент второй
Задача. Даны две матрицы N-ого порядка(сиречь двумерные массивы=)), получить третью матрицу...

Вывод по одному слову на строке
Доброго времени суток! Задача: написать программу, которая печатает содержимое своего ввода,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru