C++. Обработка строк при помощи указателей.
Добавлено: 01 ноя 2009, 18:50
C++. Обработка строк при помощи указателей.
Здравствуйте! Помогите, пожалуйста, решить задачу.
Для ввода строк использовать один и тот же символьный массив tmp[80].Обработку строк производить при помощи указателей внутри выделенного блока памяти. Запрещается использовать дополнительные массивы или блоки.
Создать текстовую функцию main(), которая реализует след. алгоритм:
1. Объявить и ввести переменные.
2. Ввести строку tmp.
3. Выделить блок памяти через указатель.
4. Скопировать строку в выделенный блок
5. Обработать блок по условию.
6. Вывести результаты обработки
7. Освободить блок
Вводить и обрабатывать строки в цикле, пока не введена пустая строка.
Условие обработки строки (п.5):
Перемешивать по k букв. Например:
Было: abcd efgh i
При k = 4 должно получится:
dcba hgfe i
Я совершенно не понимаю, как сделать 5 пункт. Помогите.
Пока накалякала вот что:
Код:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main ()
{
char tmp [80];
char* p;
int z(0);
do
{
cout << "Enter the sentence: " << endl;
cin >> tmp;
z = strlen(tmp);
p= new char[z+1];
strcpy (p, tmp);
for (int i(0);i<z
{
}
cout << p <<endl;
delete [] p;
}while (tmp[0] == 0);
}
И то ни черта не работает.
Шоколадку точно подарю
http://vkontakte.ru/id1986125
Здравствуйте! Помогите, пожалуйста, решить задачу.
Для ввода строк использовать один и тот же символьный массив tmp[80].Обработку строк производить при помощи указателей внутри выделенного блока памяти. Запрещается использовать дополнительные массивы или блоки.
Создать текстовую функцию main(), которая реализует след. алгоритм:
1. Объявить и ввести переменные.
2. Ввести строку tmp.
3. Выделить блок памяти через указатель.
4. Скопировать строку в выделенный блок
5. Обработать блок по условию.
6. Вывести результаты обработки
7. Освободить блок
Вводить и обрабатывать строки в цикле, пока не введена пустая строка.
Условие обработки строки (п.5):
Перемешивать по k букв. Например:
Было: abcd efgh i
При k = 4 должно получится:
dcba hgfe i
Я совершенно не понимаю, как сделать 5 пункт. Помогите.
Пока накалякала вот что:
Код:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main ()
{
char tmp [80];
char* p;
int z(0);
do
{
cout << "Enter the sentence: " << endl;
cin >> tmp;
z = strlen(tmp);
p= new char[z+1];
strcpy (p, tmp);
for (int i(0);i<z

{
}
cout << p <<endl;
delete [] p;
}while (tmp[0] == 0);
}
И то ни черта не работает.
Шоколадку точно подарю

http://vkontakte.ru/id1986125