0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
1

На одну строку перенести первых k символов, а на вторую остальные

22.11.2012, 19:05. Показов 2465. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
у меня задана строка (char). затем вводится число k, как мне на одну строку перенести первых k символов, а на вторую остальные(т.е. разбить строку на две)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2012, 19:05
Ответы с готовыми решениями:

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

Получить новую строку S3, содержащую N1 первых символов строки S1 и N2 первых символов строки S2
Задание 2 Даны непустые строки S1 и S2 и целые числа N1>0 и N2>0. Получить из этих строк новую...

Создать новую строку из символов 1-ой заданной строки, которые не входят во вторую заданную строку
Pascal:Создать новую строку из символов 1-ой заданной строки, которые не входят во вторую заданную...

Одну строку файла считать в Label, остальные - в список
Есть текстовый файл. В нём по строкам записаны слова. Как сделать так, чтобы с этого одного файла...

16
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
22.11.2012, 19:10 2
barselona1994, а что такое "перенести на строку"? И что подразумевается под первой и второй строкой?
0
100 / 100 / 47
Регистрация: 19.11.2012
Сообщений: 195
22.11.2012, 19:15 3
Если имеется ввиду что есть строка, и требуется до k-го символа данной строки скопировать все символы в новую строку - н-р str1, а оставшиеся в другую н-р str2. То можно циклом по i=1,...,k записть все символы исходной строки в str1, а оставшиеся символы, начиная с k+1 в str2. Как это реализовать уже другой вопрос.
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
22.11.2012, 20:17  [ТС] 4
Цитата Сообщение от Vourhey Посмотреть сообщение
barselona1994, а что такое "перенести на строку"? И что подразумевается под первой и второй строкой?
есть строка.....затем мне нужно k символов этой строки (от 1 до k) перенести на следующую строку...а оставшиеся символы из 1 строки (k+1 и дальше) перенести на 3 строку

Добавлено через 1 минуту
Цитата Сообщение от TrueBit Посмотреть сообщение
Если имеется ввиду что есть строка, и требуется до k-го символа данной строки скопировать все символы в новую строку - н-р str1, а оставшиеся в другую н-р str2. То можно циклом по i=1,...,k записть все символы исходной строки в str1, а оставшиеся символы, начиная с k+1 в str2. Как это реализовать уже другой вопрос.
как это реализовать?)

Добавлено через 1 час 0 минут
Цитата Сообщение от Vourhey Посмотреть сообщение
barselona1994, а что такое "перенести на строку"? И что подразумевается под первой и второй строкой?
есть строка.....затем мне нужно k символов этой строки (от 1 до k) перенести на следующую строку...а оставшиеся символы из 1 строки (k+1 и дальше) перенести на 3 строку
0
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
22.11.2012, 20:59 5
как-то так
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
#include <iostream>
using namespace std;
int main()
{
    char *str="abcdefghiklmnoprst";
    char *first;
    char *second;
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        first=new char[k];
        second=new char[strlen(str)-k];
        for(int i=0; i<k; i++)
        {
            first[i]=str[i];
        }
        for(int i=k; i<strlen(str); i++)
        {
            second[i]=str[i];
        }
        for(int i=0; i<k; i++)
        {
            cout<<first[i];
        }
        cout<<endl;
        for(int i=k; i<strlen(str); i++)
        {
            cout<<second[i];
        }
    }
    getchar();
    getchar();
    return 0;
}
по хорошему еще бы память почистить...)
1
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
22.11.2012, 21:10  [ТС] 6
Цитата Сообщение от NeonLost Посмотреть сообщение
как-то так
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
#include <iostream>
using namespace std;
int main()
{
    char *str="abcdefghiklmnoprst";
    char *first;
    char *second;
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        first=new char[k];
        second=new char[strlen(str)-k];
        for(int i=0; i<k; i++)
        {
            first[i]=str[i];
        }
        for(int i=k; i<strlen(str); i++)
        {
            second[i]=str[i];
        }
        for(int i=0; i<k; i++)
        {
            cout<<first[i];
        }
        cout<<endl;
        for(int i=k; i<strlen(str); i++)
        {
            cout<<second[i];
        }
    }
    getchar();
    getchar();
    return 0;
}
по хорошему еще бы память почистить...)
*str="abcdefghiklmnoprst.....а что обозначает *?
0
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
22.11.2012, 21:17 7
указатель...)
можешь заменить на char str[]= и тд
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
25.11.2012, 00:06  [ТС] 8
Цитата Сообщение от NeonLost Посмотреть сообщение
как-то так
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
#include <iostream>
using namespace std;
int main()
{
    char *str="abcdefghiklmnoprst";
    char *first;
    char *second;
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        first=new char[k];
        second=new char[strlen(str)-k];
        for(int i=0; i<k; i++)
        {
            first[i]=str[i];
        }
        for(int i=k; i<strlen(str); i++)
        {
            second[i]=str[i];
        }
        for(int i=0; i<k; i++)
        {
            cout<<first[i];
        }
        cout<<endl;
        for(int i=k; i<strlen(str); i++)
        {
            cout<<second[i];
        }
    }
    getchar();
    getchar();
    return 0;
}
по хорошему еще бы память почистить...)
А не могли бы вы привести код без использования указателей....я начинаю убтрать указатели и появляется куча ошибок) ....и что обозначает вот эта строка first=new char[k];?
0
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
25.11.2012, 03:06 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
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    char str[]="abcdefghiklmnoprst";
    vector<char> first;
    vector<char> second;
    vector<char>::iterator cur;
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        for(int i=0; i<k; i++)
        {
            first.push_back(str[i]);
        }
        for(int i=k; i<strlen(str); i++)
        {
            second.push_back(str[i]);
        }
        for(cur=first.begin();cur!=first.end();cur++)
        {
            cout<<*cur;
        }
        cout<<endl;
        for(cur=second.begin();cur!=second.end();cur++)
        {
            cout<<*cur;
        }
    }
    getchar();
    getchar();
    return 0;
}
Добавлено через 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
#include <iostream>
using namespace std;
int main()
{
    char str[]="abcdefghiklmnoprst";
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        for(int i=0; i<k; i++)
        {
            cout<<str[i];
        }
        cout<<endl;
        for(int i=k; i<strlen(str); i++)
        {
            cout<<str[i];
        }
 
    }
    getchar();
    getchar();
    return 0;
}
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.11.2012, 03:17 10
C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<iterator>
 
int main()
{
    std::string a = "string string string string string string string string";
    short k = 0;
    std::cin>>k;
    std::copy(a.begin(), a.begin()+k, std::ostream_iterator<char>(std::cout)); std::cout<<std::endl;
    std::copy(a.begin()+k, a.end(), std::ostream_iterator<char>(std::cout)); std::cout<<std::endl;
}
Пример работы:
~/Documents/projs/cpp $ ./a.out
23
string string string st
ring string string string string
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
25.11.2012, 14:17  [ТС] 11
Цитата Сообщение от NeonLost Посмотреть сообщение
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
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    char str[]="abcdefghiklmnoprst";
    vector<char> first;
    vector<char> second;
    vector<char>::iterator cur;
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        for(int i=0; i<k; i++)
        {
            first.push_back(str[i]);
        }
        for(int i=k; i<strlen(str); i++)
        {
            second.push_back(str[i]);
        }
        for(cur=first.begin();cur!=first.end();cur++)
        {
            cout<<*cur;
        }
        cout<<endl;
        for(cur=second.begin();cur!=second.end();cur++)
        {
            cout<<*cur;
        }
    }
    getchar();
    getchar();
    return 0;
}
Добавлено через 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
#include <iostream>
using namespace std;
int main()
{
    char str[]="abcdefghiklmnoprst";
    int k;
    cin>>k;
    if(k>strlen(str) || k<1) 
    {
        cout<<"bad k";
    }
    else 
    {
        for(int i=0; i<k; i++)
        {
            cout<<str[i];
        }
        cout<<endl;
        for(int i=k; i<strlen(str); i++)
        {
            cout<<str[i];
        }
 
    }
    getchar();
    getchar();
    return 0;
}
как можно , если на позицию k попадает слово, то перенести его(слово) и следующее за ним слово- на следующую строчку?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.11.2012, 15:05 12
Цитата Сообщение от barselona1994 Посмотреть сообщение
как можно , если на позицию k попадает слово, то перенести его(слово) и следующее за ним слово- на следующую строчку?
найти предыдущий пробел, да сделать то же самое, что с k
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
25.11.2012, 15:17  [ТС] 13
Цитата Сообщение от Vourhey Посмотреть сообщение
найти предыдущий пробел, да сделать то же самое, что с k
так я перенесу всю оставшуюся строку после пробела
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.11.2012, 15:25 14
Тогда найди следующее слово, вместо переноса строки до длины, перенесешь следущие два слова. Это будет от предыдущего пробела до следующего второго.
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
25.11.2012, 15:29  [ТС] 15
Цитата Сообщение от Vourhey Посмотреть сообщение
Тогда найди следующее слово, вместо переноса строки до длины, перенесешь следущие два слова. Это будет от предыдущего пробела до следующего второго.
так как это сделать? ...мне нужен код)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.11.2012, 18:02 16
Цитата Сообщение от barselona1994 Посмотреть сообщение
так как это сделать? ...мне нужен код)
А подумать головой?
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
25.11.2012, 18:33  [ТС] 17
Цитата Сообщение от Vourhey Посмотреть сообщение
А подумать головой?
мне нужен код)
0
25.11.2012, 18:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2012, 18:33
Помогаю со студенческими работами здесь

Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени
Задание: Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну...

Вставьте вторую строку в первую, начиная с пятой позиции.Распечатайте новую строку и подсчитайте сколько в ней символов
Всем доброго времени суток. Помогите,пожалуйста,с программами: 1)Даны матрицы А(5,3) и...

Выведите на экран в одну строку набор символов в порядке расположения символов
Выведите на экран в одну строку набор символов «ABBCCC...ZZ...Z.» в порядке расположения символов в...

Дано 2 строки любых символов символов:1) 1 строка -обьеденить 1, 2 строку, сделат ее в одну
Дано 2 строки символов: 1) 1 строка -обьеденить 1, 2 строку, сделат ее в одну. 2) Подсчитать...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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