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

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

Восстановить пароль Регистрация
 
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
07.12.2010, 18:31     По одному слову поочередно из каждой строки записать в третью #1
Доброе время суток. Помогите плиз, ибо я начинающий программист. Даны два предложения char st1,st2, любого содержания, мне надо составить программу так, чтобы по одному слову поочередно из каждой строки записывалось в третью st3.Заранее говорю Спасибо!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2010, 18:31     По одному слову поочередно из каждой строки записать в третью
Посмотрите здесь:

Сформировать текст, в строках котрого содержится по одному слову из текста C++
Записать в дополнительный столбец значение удвоенного минимального каждой строки матрицы C++
C++ Как считывать из файла по одному слову
C++ Динамические массивы. Найти наибольшие элементы каждой строки матрицы Х и записать их в массив Y
Не получается сумму каждой строки записать в новый массив. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
11.12.2010, 17:25  [ТС]     По одному слову поочередно из каждой строки записать в третью #3
Вау, блестяще!!! Только мне не понятны функции #define....Можно ли их как-нибудь заменить просто переменными?
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
15.12.2010, 17:20  [ТС]     По одному слову поочередно из каждой строки записать в третью #4
Поясните пожалуйста какую роль здесь играет звездочка? char *p = strtok(sen2, DELIM)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.12.2010, 17:23     По одному слову поочередно из каждой строки записать в третью #5
Костяныч, Почитай про функцию strtok() и сразу все поймеш.
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
15.12.2010, 18:06  [ТС]     По одному слову поочередно из каждой строки записать в третью #6
Ааа понял...что значит DELIM в этой функции? И самый последний вопрос:если я считываю с файла текст к примеру f=fopen("data.txt","r") , как мне этот текст засунуть в массив, чтобы перейти к коду, который ты написал?
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
17.12.2010, 18:02  [ТС]     По одному слову поочередно из каждой строки записать в третью #7
А почему у меня только два первых слова отображаются и все?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.12.2010, 18:07     По одному слову поочередно из каждой строки записать в третью #8
Костяныч, Незнаю, у меня даный код работает.
Миниатюры
По одному слову поочередно из каждой строки записать в третью  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2010, 19:30     По одному слову поочередно из каждой строки записать в третью
Еще ссылки по теме:

Записать в файл поочередно по две строки из двух других файлов C++
Записать в вектор среднее значение элементов каждой строки матрицы C++
Записать в файл максимальные из чисел каждой строки исходного файла C++

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

Или воспользуйтесь поиском по форуму:
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 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();
}
Yandex
Объявления
20.12.2010, 19:30     По одному слову поочередно из каждой строки записать в третью
Ответ Создать тему
Опции темы

Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru