Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простенькая задачка на строки 
:(
    Опции темы
dark0ut
Дата 22.2.2004, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.2.2003

Репутация: нет
Всего: нет



Даны 2 строки S1 и S2. Нужно написать программу, которая удаляет из строки S1 все символы, встретившиеся в строке S2.
Помогите, плиз.
PM MAIL WWW ICQ   Вверх
Гость_setq
Дата 22.2.2004, 02:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











чего сложного-то, а? ты начни ТОЛЬКО САМ. мы поможем.
  Вверх
dark0ut
Дата 23.2.2004, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.2.2003

Репутация: нет
Всего: нет



Ну не знаю. У меня не получается никак, поэтому и спрашиваю.
PM MAIL WWW ICQ   Вверх
kuzia
Дата 23.2.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.1.2004

Репутация: нет
Всего: нет



clrscr();

char s1[]="ass hole mother fucker.";
char s2[]="abcdefgh.";

int i,j,p,n,m;

///////////////////////////////////////////////////////////////

/* String inicialization from keybord */

/*

cout << "Input first string: ";

for(n=0; s1[n]!='.'; n++) //Counting string-length directly while
//Inicializing
{
cin >> s1[n];
}

cout << "Input second string: ";

for(i=0; s2[i]!='.'; i++) //Counting string-length directly while
//Inicializing
{
cin >> s1[i];
}

*/

///////////////////////////////////////////////////////////////

/* Counting in a separate cicle */

for (n=0 ; s1[n] != '.' ; n++ ) //counting simbols to avoid
for (i=0 ; s2[i] != '.' ; i++ ) //errors in printing in BC 3.1

///////////////////////////////////////////////////////////////

for (j=0 ; j <= i ; j++ ) //cicle for the mother - string
{
for(m=0;m<=n;m++) //cicle for the child - string
{
if(s2[j]==s1[m]) s1[m]=' ';
}
}

for (p=0 ; s1[p] != '.' ; p++ ) //this version will not avoid ' '
// => not formating modification
{
cout<<s1[p]; //Printing the optimized string
}

///////////////////////////////////////////////////////////////

/* Ouputing the optimised string */

cout<<"\n";

for (p=0 ; s1[p] != '.' ; p++ ) //this version will avoid ' '
// => formating modification
{
if(s1[p]!=' ') cout<<s1[p]; //Printing the optimized string
}

getch();

Это сообщение отредактировал(а) kuzia - 23.2.2004, 13:10
PM MAIL   Вверх
kuzia
Дата 23.2.2004, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.1.2004

Репутация: нет
Всего: нет



Там всё форматирование и вообще всё поехало. Так что скачать этот исходник можно с моего сервера
PM MAIL   Вверх
Coocky
Дата 23.2.2004, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата
for(n=0; s1[n]!='.'; n++) //Counting string-length directly while
//Inicializing
{
cin >> s1[n];
}

cout << "Input second string: ";

А че так сложно -цикл
можно просто
Цитата
char s1[100];
cin>>s1;

Или я че то задание не понялconfused.gif
Да и еще dark0ut почитай про класс CString,там много интересных фунций


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
ElectricalStorm
Дата 24.2.2004, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



не знаю С++
Алгоритм:
1) Разбиваем строки на массивы символов (получаем массив А и В)
2) Сортируем оба по возрастанию
Код

Пока (есть елементы в первом и во втором) {
   если (первый елемент A == первый елемент B) {
       добавляем в конец :) в массив U   первый елемент A;
       удаляем первый елемент у А
       удаляем первый елемент у В
   }
   иначе если (первый елемент A > первый елемент B) {
       удаляем первый елемент у В
   }
   иначе {
        удаляем первый елемент у А
   }
}


на Perl 10 строчек smile.gif



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
kuzia
Дата 24.2.2004, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.1.2004

Репутация: нет
Всего: нет



Coocky - это цикл потому, что я сделал универсальную, чтоб под BORLAND 3.1 пахало, если делать так как ты, то если рамер будет не сто, а меньше, то он оставшиеся байты аски код распечатает просто... одним словом мухолапки!
PM MAIL   Вверх
Coocky
Дата 24.2.2004, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



kuziaНеужели ты не знаешь,что в С++ есть символ оконания строки(/'0'),поэтому будет
Код
for(i=0;s1!=NULL;i++)
{cout<<s1[i];}
а еще:
х=strlen(не помню точно синтаксис,давно не пользовался :D );//кол-во символов

for(i=0;i<=x;i++)
{cout<<s1[i];}


это минимум,а
вообще cout<<s1;//Выведет символы,пока не встретит '0'


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
OlegsDP
Дата 25.2.2004, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 25.2.2004

Репутация: нет
Всего: 1



Код

BOOL maskFilter (char* dst, char* src, char* mask, unsigned int dstlen)
{
 int i, j;
 for (i = j = 0;; i++) {
   if (!src [i]) {
     dst [j] = 0;
     return TRUE;
   }
   BOOL ok = TRUE;
   for (int k = 0; mask [k]; k++) {
     if (src [i] == mask [k]) {
       ok = FALSE;
       break;
     }
   }
   if (ok) {
     dst [j++] = src [i];
     if (j == (dstlen - 1)) {
       dst [j] = 0;
       return FALSE;
     }
   }
 }
}


Это сообщение отредактировал(а) OlegsDP - 26.2.2004, 14:39
PM MAIL   Вверх
Гость_kuzia
Дата 1.3.2004, 18:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











блин, итак это и ежу понятно!!!!!! только чем это короче моего!
  Вверх
Artemon
Дата 2.3.2004, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Гость_kuzia, может и не короче, но у COOCKY правельнее.
Вдруг в конце строки встретится не точка.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.