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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c++]строки, строки 
:(
    Опции темы
girlsbest
Дата 15.12.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



помогите решить две задачки
1)Исключить  подстроку максимальной длины,  начинающуюся с символа С1 и заканчивающуюся символом С2.
2)Записать каждую строку в текстовом файле словами,  записанными наоборот (например,  вместо строки "мама мыла раму" полу¬чить строку "амам алым умар").
PM MAIL   Вверх
Zhenya12
Дата 15.12.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Делать твое задание не буду а вот пример по с++ со сроками могу дать там токае есть если хоть чучуть шарих разберошся.

Цитата

#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

void doZvity()
{
 clrscr();
 gotoxy(8,7);  cprintf("Standartni fanction movu Turbo C kotri vukorustovyvalusa v programi");
 gotoxy(8,8);  cprintf("strstr - Naxodit poervovo vogdunua vukorustovye 2 parametra (stroka,Word)");
 gotoxy(8,9);  cprintf("strlen - Dlina stroki");
 gotoxy(8,10); cprintf("strncpy - Copy z vtroki pevny kilkist sumvoliv");
 getch();
}


int menu() /*Menu pregram*/
{
 int i;
 textcolor(3);
 cprintf("\r\n\n\n 1. Position to exit substring");
 cprintf("\r\n 2. Delete substring");
 cprintf("\r\n 3. Insert substring");
 cprintf("\r\n 4. Copy");
 cprintf("\r\n 5. Kilkise ");
 cprintf("\r\n 6. Do Zvitu");
 cprintf("\r\n 7. Exit");textcolor(15);
 cprintf("\r\n\n Choise menu item:");cscanf("%d",&i);
 return (i);
}

int task1(char st[],int *ls)  /*Pochyk 1 bxodgenna sumvola inty string*/
{
 int i;
 char subst[10];
 cprintf("\r\n Input substring:"); cscanf("%s",subst);
 *ls=strlen(subst);i=strstr(st,subst)-st;
 return(i);
}

int task3(char st[]) /*Wstavlae pisla sumvola stroky*/
{
 int i,j,k,ls,lsub;
 char subs[10],c[1],tm[50];
 ls=strlen(st);
 cprintf("\n\r Input substring for insert: ");cscanf("%s",subs);
 cprintf("\n\r Input symbol after insert: ");cscanf("%s",c);
 i=strstr(st,c)-st; ls=strlen(st); lsub=strlen(subs);
 for(j=0;j<=ls-i+1;j++) tm[j]=st[j+i+1];
 for(j=i+1,k=0;j<=i+lsub,k<=lsub;j++,k++) st[j]=subs[k];
 for(j=i+lsub+1,k=0;j<=ls+lsub,k<=ls-i;j++,k++) st[j]=tm[k];
}

int task2(char st[])/* Wudalenna slova z stroki*/
{
 int i,j,ls,lsub;
 i=task1(st,&lsub); ls=strlen(st);
 for(j=i;j<=ls-lsub;j++) st[j]=st[j+lsub];
}

int task4(char st[]) /*Wuwodut sopy sumwolu  z string*/
{
 char OutputStr[100];char Symbol;
 int kilkist;
 cprintf("\r\n Input Sumbol z kotrogo pochunatu copy:");cscanf("%s",&Symbol);
 cprintf("\r\n Input kilkisr sumvoliv kotri potribno zcopiyvatu:");
 cscanf("%d",&kilkist);
 strncpy(OutputStr,strchr(st,Symbol)+1,kilkist);
 cprintf("\r\n Sumvolu kotri copy=%s",OutputStr );
 getch();
}

int task5(char st[]) /*Pidrahowye kilkist bykvospolychen*/
{
 char Word[256];
 int num = 0;
 char *c,pos;
 cprintf("\r\n Input slovo kotre potribno poraxyvatu:");cscanf("%s",Word);
 for(c=st;*c;c++)
 {
  char* pos = strstr(c,Word);
  if(!pos) break; else  {num++;c=pos+strlen(Word)-1;}
  }
  cprintf("\r\n Kilkist vxodgen slova=%d",num);getch();
}

void main()
{
 char s[50];
 int item,i;
 clrscr();hello();clrscr();textcolor(15);
 cprintf("\r\n Input string: ");textcolor(14);cscanf("%s",s);
 do
 {
  clrscr();textcolor(15);cprintf("\r\n String:%s",s);item=menu();
  switch (item)
   {
    case 1:{cprintf("\r\n Position exit substring is:%d ",
    task1(s,&i)+1);getch();break;}
    case 2:{task2(s);break;}
    case 3:{task3(s);break;}
    case 4:{task4(s);break;}
    case 5:{task5(s); break;}
    case 6:{doZvity();break;}
    case 7:{abort();}
   }
  }
  while (getch()!=27);
}



Это сообщение отредактировал(а) Zhenya12 - 15.12.2008, 21:06
PM MAIL   Вверх
Dmi3ev
Дата 15.12.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ради прикола, вторая:
Код

//---------------------------------------------------------------------------

#include <iostream.h>
#include <fstream.h>
#include <string.h>
//---------------------------------------------------------------------------

int main()
{
ofstream fo;
ifstream fi;
char s[255];
fo.open("D:\\2.txt", ios::out);
fi.open("D:\\1.txt");
while (!fi.eof())
 {
  fi.getline(s,255);
  cout<<s;
  strrev(s);
  cout<<"--->"<<s<<endl;
  fo<<s<<endl;
 }
cout<<"the end of file is finished..."
fi.close();
fo.close();
return 0;
}
//---------------------------------------------------------------------------

в первой, что имеется в виду под подстрокой не понятно... (лично мне).


--------------------

PM MAIL   Вверх
girlsbest
Дата 16.12.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну удалить слова максимальной длинны начинающиеся на с1 и заканчивающиеся с2....

Добавлено @ 20:40
Zhenya12, ну вы хотябы условие кода выложили...уж очень сложно понять для чего прога написана...без всяких коментов...

Это сообщение отредактировал(а) girlsbest - 16.12.2008, 20:44
PM MAIL   Вверх
Rififi
Дата 16.12.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Zhenya12
могу дать там токае есть если хоть чучуть шарих разберошся.
"Разберешься"? В ЭТОМ "разберешься"? Бугага, за что ты так гирлу не любишь smile
PM MAIL   Вверх
girlsbest
Дата 16.12.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а позвольте спросить...гирла...это что smile типа я? да) smile  smile 
PM MAIL   Вверх
taiven
Дата 16.12.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Dmi3ev, там вообще-то надо слова в строке перевернуть, а не саму строку...
PM   Вверх
Dmi3ev
Дата 16.12.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

а позвольте спросить...гирла...это что smile типа я? да) smile  smile  

ну да, а че ты не гирла)))
taiven, я предложил хоть какое-то решение... скажем так, посмотрел, х*як, решил... все кошерно и классно... не нравится что-то гирле... пусть, пусть сама решает... все просто... суть-то такая же практически, если между словами разное кол-во пробелов и тд, то, конечно, разница есть и то я бы сказал, что и так пойдет...
короче, пусть у нее будет мой запасной вариант... а сама может найти слово, а потом его повернуть... это несложно совсем... но мне этим мутором заниматься не очень хочется, поэтому предложил такой вариант... По-моему, вполне катящий...


--------------------

PM MAIL   Вверх
girlsbest
Дата 16.12.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Dmi3ev, ну да...гирла)))просто я такого варианта еще не слышала))) smile  ...спасибо за ваш пример...я думаю, что у меня получится разобраться smile ...к вам никаких претензий нету...спасибо еще раз за ваши старания smile 
PM MAIL   Вверх
taiven
Дата 16.12.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



второе(вроде рабочее)
Код

#include <iostream>
#include <cctype>
#include <fstream>
#include <cstring>
#include <clocale>

using namespace std;

int main()
{
    int index = 0;
    char arr[256] = {'\0'};
    char ch;

    setlocale(LC_ALL, "");
      
    ifstream in("C:\\input.txt");
    ofstream out("C:\\output.txt", ios::out | ios::trunc);

    in.unsetf(ios::skipws);
    
    while(!in.eof())
    {
        in >> ch;
        if(isalpha((unsigned char)ch))
        {
            while(!isspace((unsigned char)ch) && !ispunct((unsigned char)ch) && in)
            {
                arr[index++] = ch;
                in >> ch;
            }
            strrev(arr);
            if(!isalpha((unsigned char)ch)) out << arr << ch;
            else out << arr;
            memset(arr, '\0', 256);
            index = 0;
        }
        else out << ch;
    }

    in.close();
    out.close();
    return 0;
}


PM   Вверх
girlsbest
Дата 16.12.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



taiven, спасибо.. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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