Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2012, 21:59   #1
asdkile
Новичок
Джуниор
 
Регистрация: 03.11.2012
Сообщений: 1
По умолчанию C++, обработка строк при пoмощи указателей

Помогите исправить ошибки в коде, заранее спасибо!
Вот задание:
Создать тестовую функцию main(), которая реализует след. алгоритм:
1. Объявить и ввести переменные.
2. Ввести строку tmp.
3. Выделить блок памяти через указатель.
4. Скопировать строку в выделенный блок
5. Обработать блок по условию.
6. Вывести результаты обработки
7. Освободить блок
Вводить и обрабатывать строки в цикле до тех пор, пока первый символ строки является буквой.
Условие обработки строки (п.5):
1. Вычислить количество вхождений в строку заданного пользователем символа.
2. Рядом с заданным пользователем символом записать такой же.
Символ вводится до начала обработки строк.

Код:
#include <iostream>
#include <cstring>
using namespace std;

int main ()
{
	char tmp [80];
	char q; 
	char* p;
	int z;
	int y; 
	cout << "Enter symbol: " << endl ;
	cin >> q;
	char* pS = p;
	char* sht;
	char r,h;

	do
	{
		cout << "Enter the string: " << endl;
		cin.getline(tmp, 80);
		z = strlen(tmp);
		p = new char[z+1];
		strcpy_s(p,z+1, tmp);
		y=0;

		//первое условие обработки (кол-во символов в строке)
		while (*pS)
			if (*pS++==q)
				++y;
		cout << "Result: " << y << endl;
		y=0;

		//второе условие обработки
		cur=tmp;
		pS = p;
    while(*pS)
    {
           if (*pS==q)
	   {
                sht=pS+1;
                r=q;
                while(*sht)
		   {
                          h=*sht;
                          *sht=r;
                          r=h;  
                          sht++;             
                   }               
                *sht=r; 
                  sht++;
                *sht=0;  
        pS++;           
              }
      pS++; 
     }
	
    
    cout  <<"String after replacing\n" << tmp <<endl;
	delete [] p;
	}while(isalpha(*p));
	return 0;
}
asdkile вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование указателей при рааботе с массивами chainiksi Общие вопросы C/C++ 1 28.11.2011 16:28
Обработка символьного массива с пом. указателей magrif Помощь студентам 11 02.11.2011 18:14
20к тем в Пoмощи Студентам Levsha100 Свободное общение 3 10.05.2010 11:44
C++. Обработка строк при помощи указателей. akafanta Помощь студентам 0 01.11.2009 17:33
Сортировка строк по алфавиту в структуре с помощью указателей Anarki Общие вопросы C/C++ 2 23.10.2009 19:36