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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2015, 11:41   #1
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию Как удалить символы из строк?

Ребята, помогите разобраться.

Пользователь вводит набор строк.
Нужно написать функцию, которая удаляет из строки все цифры, дальше нужно использовать эту функцию в программе.
В первом варианте функция должна принимать в качестве параметра одну (!) С-строку с использованием механизма передачи ее через указатель, во втором - одну(!) строку класса string с использованием механизма передачи ее по ссылке.

Чет у меня никак не получается написать функцию. Вот мой вариант
Код:

#include <iostream>
#include <string>
#include <cstring>

using namespace std;
void udalenie(string&);
void udalenie(char*);

int main()
{
	int n;
	const int m =255;
	cout << "Vvedite kolichestvo strok:  ";
	cin >> n;
	cin.ignore();
	char **pervij = new char*[n]; 
	string *vtoroj = new string[n]; 
	for (int i = 0; i < n; i++)
	{
		pervij[i] = new char[m];
		cout << "vvedite stroku: ";
		cin.getline(pervij[i], m);
		string tmp(pervij[i]);
		vtoroj[i] = tmp;
	}
	cout << "\n" << endl; 
	for (int i = 0; i < n; i++)
	{
		udalenie(vtoroj[i]);
		udalenie(pervij[i]);
		cout << "\n";
		cout << "string stroka: " << vtoroj[i] << endl;
		cout << "C- stroka: " << pervij[i] << endl;
		
	}
	cout << endl;
	return 0;
}

void udalenie(string& vtoroj)  // TUT NACHINAETSA SAMA FUNKCIJA!!!!!!!!
{
	string tmpvtoroj;
	//  ?????    for  cikl      //?????????
	{
		// TUT DOLZHNA BITJ  FUNKCIJA (
	}
}
void udalenie(char* pervij)  // TUT JA ZAPUTALSA
{
	char tmppervij;
	for (int i = 0; i<strlen(pervij); i++)
	{
		if (!isdigit((unsigned char)pervij[i])) //Если символ не цифра
			*pervij++ = pervij[i]; //то пишeм этот символ в pervij
	}
}

Последний раз редактировалось Stilet; 19.03.2015 в 13:08.
NYork вне форума Ответить с цитированием
Старый 19.03.2015, 12:39   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
void delete_digits(char* str)
{      
   size_t j = 0;
   for(size_t i = 0; str[i]; i++)   
       if(!isdigit(str[i])) str[j++] = str[i];              
   str[j] = 0;
}

int main(void)
{
  char str[] = "d123ddfdf";  
  delete_digits((char*)str);
  return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 20.03.2015, 10:16   #3
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию

у меня почему то ваш код не работает (((
NYork вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как удалить определенные символы(буквы) из предложения? emdroof C# (си шарп) 3 04.04.2013 00:20
Как заменить цифры знаком " ! ". Удалить символы, соответствующие гласным буквам как русского, так и латинского алфавит inna_matuashova Помощь студентам 2 25.10.2011 23:44
Как в удалить кучу строк, через одну? levohotnik Microsoft Office Excel 6 09.09.2010 21:08
как удалить лишнеие символы в строке, и ограничить длину строки MixanMM Общие вопросы Delphi 3 11.06.2009 07:03
как из строки ТМемо удалить ненужные символы MixanMM Общие вопросы Delphi 3 10.06.2009 13:49