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

Нужно разделить эту строку на 3 части и вывести на экран. - C++

Восстановить пароль Регистрация
 
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
10.01.2013, 21:49     Нужно разделить эту строку на 3 части и вывести на экран. #1
Здравствуйте!
Вот задача:
К примеру у нас есть строка длина которой кратная 3.
Нужно разделить эту строку на 3 части и вывести на экран.

Вот мой код:
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
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    char str[80],st1[80],st2[80],st3[80];
    int i,x;
    gets(str);
    for(i=0;i<=strlen(str);i++)
    {
                               st1[i]='\0';
                               st2[i]='\0';
                               st3[i]='\0';
                               }
   
    x=strlen(str)/3;
    
    for(i=0;i<=x-1;i++)
    st1[i]=str[i];
    
    for(i=x;i<=x+x-1;i++)
    st2[i]=str[i];
    
    for(i=x+x;i<=x+x+x-1;i++)
    st3[i]=str[i];
    cout<<st1<<'\n'<<st2<<'\n'<<st3<<'\n';
    system("pause");
    return 0;
}
Я не могу понять почему в строку st1 символы записываются а в st2 и st3 нет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 21:49     Нужно разделить эту строку на 3 части и вывести на экран.
Посмотрите здесь:

C++ Дана строка s. Вывести эту строку с пробелами между всеми символами.
C++ Как разделить определенный столбец матрицы на какое то число, чтоб потом вывести эту матрицу после этого деления
Разделить строку на части C++
появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - C++
C++ Ввести комплексные числа, упорядочить их мнимые части и вывести на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shandr_71
13 / 13 / 1
Регистрация: 05.12.2011
Сообщений: 84
10.01.2013, 22:37     Нужно разделить эту строку на 3 части и вывести на экран. #2
C++
1
2
3
4
5
6
7
    
for(i=0;i<=strlen(str);i++)
{
   st1[i]='\0';
   st2[i]='\0';
   st3[i]='\0';
}
Все строки будут начинаться с '/0', а в следующих циклах в строки 2 и 3 символы заносятся не сначала, т.е. эти строки будут иметь вид "'/0*" и "/0/0*" соответственно.
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
10.01.2013, 22:47  [ТС]     Нужно разделить эту строку на 3 части и вывести на экран. #3
Ничего не понял.
FreeMinder
 Аватар для FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
10.01.2013, 23:05     Нужно разделить эту строку на 3 части и вывести на экран. #4
Все символы записываются, для строк st2 и st3 тебе нужен дополнительный индекс чтобы с 0 шел, ведь на первой итерации во втором цикле i = x, а должно с 0 идти

Добавлено через 2 минуты
C++
1
2
3
4
5
for(int j=0,i=x;i<=x+x-1;j++,i++)
    st2[j]=str[i];
    
    for(int j=0,i=x+x;i<=x+x+x-1;j++,i++)
    st3[j]=str[i];
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
10.01.2013, 23:08  [ТС]     Нужно разделить эту строку на 3 части и вывести на экран. #5
А ясно. Понял спс. блн очень тяжело перестроится на с++. к этому на object pascal писал .
Yandex
Объявления
10.01.2013, 23:08     Нужно разделить эту строку на 3 части и вывести на экран.
Ответ Создать тему
Опции темы

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