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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2013, 15:52   #1
JLevenets
Пользователь
 
Регистрация: 23.11.2013
Сообщений: 13
По умолчанию Строки (С/С++)

Ввести строку символов S1. Выполнить следующие действия:
Составить программу, которая по заданной строке S1 строит новую строку, полученную из S1:
1) удалением из S1 всех цифр;
2) переворачиванием S1;
3) сцеплением строки S1 и вновь полученной строки в п. 1) и 2).
JLevenets вне форума Ответить с цитированием
Старый 23.11.2013, 16:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
удалением из S1 всех цифр;
Код:
char* redelion(char *s){
 int k=0; for(int i=0;s[i];i++) k+=(s[i]>='0' && s[i]<='9')?1:0;
 char *c=new char[k];
 k=0;
 for(int i=0;s[i];i++) if(s[i]>='0' && s[i]<='9') c[k++]=s[i];
 return c
}
Цитата:
переворачиванием S1;
Код:
char* reverion(char *s){
 int k=0; for(int i=0;s[i];i++) k++;
 char *c=new char[k];
 k=0;
 for(int i=k;i<=0;i--) c[k++]=s[i];
 return c
}
Цитата:
сцеплением строки S1
См. в хелпе функцию strcat()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 19:12   #3
troyan90
Пользователь
 
Регистрация: 23.06.2011
Сообщений: 54
По умолчанию

на c++
Код:
#include <tchar.h>
#include <iostream>
#include <string>

int _tmain(int argc, _TCHAR* argv[])
{
	std::string s1;
	std::string tmp;
	std::string s2;

	std::cin >> s1; // ввести строку

	for (int i = 0; i < s1.size(); i++) // 1
		if (!((s1[i] >= '0') && (s1[i] <= '9')))
			tmp += s1[i];

	for (int g = tmp.size(); g >= 0; g--) // 2
		if (tmp[g] != 0)
			s2 += tmp[g];

	s1 += s2; // 3

	std::cout << s1 << std::endl;

	return 0;
}
troyan90 вне форума Ответить с цитированием
Старый 23.11.2013, 19:50   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
return c
Косячок (Или в С++ там можно?)

Цитата:
k+=(s[i]>='0' && s[i]<='9')?1:0;
Абалдеть!

Можно пару вопросов?

Цитата:
char* reverion(char *s){
char *s - всё ясно.. передаем &s... А что означает char* reverion? тоесть должно быть что-то вида &a = reberion(&s)?
Poma][a вне форума Ответить с цитированием
Старый 23.11.2013, 21:43   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Косячок
Почему? Я указатель возвращаю.
Цитата:
тоесть должно быть что-то вида &a = reberion(&s)?
Код:
char s2="Hello world";
char* s=reverion(&s2)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 21:47   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Почему? Я указатель возвращаю.
Если было бы
Цитата:
return c;
вопросов бы не было..

И я всё равно не понимаю..

int* p; == int *p?

Последний раз редактировалось Poma][a; 23.11.2013 в 21:53.
Poma][a вне форума Ответить с цитированием
Старый 23.11.2013, 21:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Забей. Все равно я тебя не понял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 22:04   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ты пишешь
Цитата:
return c
В СИ за такое можно получить
А вот в с++, я не осведомлен..
return c и return c;

Мне же не ясен 1 момент..
Цитата:
Код:
char* reverion(char *s){
Цитата:
Код:
char s2="Hello world";
char* s=reverion(&s2)
s получается указательно.. НО, на что?
Получается где-то в памяти должно быть сохранено reverion (&s2).. Или как?
Poma][a вне форума Ответить с цитированием
Старый 24.11.2013, 00:16   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
return c и return c;
А-а-а.
Цитата:
НО, на что?
На константу Hello world
Цитата:
где-то в памяти должно быть сохранено reverion (&s2)
Результат всмысле? это делает char *c=new char[k];
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2013, 10:41   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Дак она же локальная! И не видна из главной тушки!
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10