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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 12:10   #1
Neznakomka
Пользователь
 
Аватар для Neznakomka
 
Регистрация: 10.05.2009
Сообщений: 16
По умолчанию Помогите решить задачи на строки

Дали задачи в универе незнаю как решить помогите пожалуйста
1) Заменить в строке все вхождения подстроки str1 на подстроку str2
2) Дано осмысленное текстовое сообщение (т.е алфавитно-цифровая информация, разделенная пробеламии и знаками препинания, в конце которого ставится точка):
Вывести только те слова сообщения, которые начинаются и оканчиваются на одну и ту же букву.
3) Дан текст, имеющий вид: d1+d2+...+dn,где di - цифры. Вычислить записанную в тексте сумму.
Neznakomka вне форума Ответить с цитированием
Старый 10.05.2009, 12:16   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну, во-первых, указывайте язык.
Во-вторых, что вам конкретно непонятно? Где ваши наработки?

В первой все и так ясно.
Во второй идете от разделителя до разделителя, при этом пишете символы в буфер. Потом смотрите первый и последний символ буфера.
Третья: тоже ничего сложного.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 12:31   #3
Neznakomka
Пользователь
 
Аватар для Neznakomka
 
Регистрация: 10.05.2009
Сообщений: 16
По умолчанию

Язык С++
С третьей задачей вроде более менее разобралась
А вот в 1 и 2 непонимаю что нужно делать
Neznakomka вне форума Ответить с цитированием
Старый 10.05.2009, 12:58   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая:
Код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

int main(){
string str="Test, string, test. This is test!";
string str1="test";
string str2="replace";
int k;
cout<<str<<endl;
while((k=str.find(str1))!=-1)
 str.replace(k,str1.length(),str2);

cout<<str<<endl;

getch();
return 0;
}
Вторая:
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main(){
char str[] = "This is test string, aha, test.";
char *p;

printf("String = %s\n\n",str);
p = strtok(str," ,.");
if(p && *p==*(p+strlen(p)-1)) printf("%s\n",p);
while(p = strtok(NULL," ,."))
 if(*p==*(p+strlen(p)-1)) printf("%s\n",p);

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 13:06   #5
Nomlpppp
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 51
По умолчанию

Код:
Даноосмысленноетекстовоесообщение(т.еалфавитно-цифроваяинфо...
Код:
#include<stdio.h>
#include<string.h>
#include<conio.h>




/**
 Проверяет, является ли символ символом разделителем.
**/
int chk4delimiter( unsigned char symbol, unsigned char *delims )
 {
 int sign;

 for( sign=0; *delims; delims++ )
  {
  if( symbol==*delims )
   {
   sign = 1;
   break;
   }
  }
 return( sign );
 }




int main()
 {
 int i, j;
 char buffer[ 1024 ], delimiters[]=" .,?:!\n\t";

 char message[] = "ЕслЕ вы скопируетес данный файл,ВыВ должны онезамедлительно удалить егое?";

 for( j=0, i=0; ; )
  {
  if( chk4delimiter(message[ i ], delimiters) )
   {
   buffer[ j ] = '\0';

   //printf( "%s\n", buffer );
   //getch();

   if( buffer[ j-1 ]==buffer[ 0 ] )
    {
    printf( "%s\n", buffer );
    }
   j = 0;
   if( i<strlen(message) ) i++; else break;
   }

  buffer[ j++ ] = message[ i ];
  if( i<strlen(message) ) i++; else break;
  }

 return 0;
 }
Очень простое решение.
Nomlpppp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачи gector Помощь студентам 2 02.02.2009 18:36
Помогите решить задачи НОГАННО Помощь студентам 9 01.02.2009 23:18
Помогите решить задачку (строки) Людик Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2008 17:45
помогите решить задачи!!! black_soul Фриланс 13 21.07.2008 09:22
Помогите решить задачи в C++ marsius Помощь студентам 4 18.04.2008 23:33