Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dido11
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
#1

Требуется консультация по АйСиКью прямо сейчас - C++

10.12.2010, 23:09. Просмотров 485. Ответов 7
Метки нет (Все метки)

Ребята, срочно нужно написать простую программку на Си++, а я эту Си вижу второй раз в жизни.
Кому не сложно и кто не слишком занят, отпишите мне плз в аську (три сорк четыре девять три 0 6 пятьдесят).
Буду по ходу написания мучить вопросами, в основном по синтаксису, с алгоритмом решения вроде всё ясно.

Добавлено через 2 часа 50 минут
Желающих помочь по аське не нашлось, спрошу на форуме.
Нужно добавить символ в начало строки, делаю следующим образом:
C++
1
2
3
4
5
6
for (j=1;j<=2;j++)
{
for (i=LenStr; i>=0;i--)
Str[i+1]=Str[i];
Str[0]='*';
}
Null с конца массива не переносится конечно, и размерность массива не увеличивается, то есть происходит так:
строка
*строк
**стро
Как сделать, чтобы работало так, как нужно мне?
Пожалуйста ответьте максимально развёрнуто, ибо я С++ вижу действительно второй раз в жизни.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Требуется консультация по АйСиКью прямо сейчас (C++):

сдаю экзамен прямо сейчас!!! - C++
Входной текст представляет собой последовательность литер, изображающих целое число. Числу может предшествовать знак &quot;+&quot; или &quot;-&quot;, а также...

Решение задачи не требуется, нужна только в консультация!)) - C++
доброе время суток. моё задание: Множество целочисленных констант используемого языка реализации. вообще у меня задание это по...

Экзамен прямо сейчас - MySQL
Создать запрос с использованием псевдонимов полей выполняющий вывод информации о максимальном балле,минимальном балле,среднем балле каждому...

Требуется консультация! - VBA
Добрый день всем умам! )) Скажу сразу, программист из меня никакой. Разбираюсь очень хорошо в железе, но не более того. Есть одна...

Требуется консультация - Windows XP
Доброго времени суток. Помогите пожалуйста понять в чем проблема. устанавливаю виндовc XP sp3. устанавливал на многих компах...

Требуется консультация, пожалуйста! - MathCAD
Не могу разобраться с заданиями

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
10.12.2010, 23:13 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main ()
{
    std::string str;
    char ch;
    std::cout << "Input string: ";
    std::getline(std::cin, str);
    std::cout << "Input char: ";
    std::cin >> ch;
    str.insert(str.begin(), ch);
    std::cout << str;
    return 0;
}
0
dido11
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
10.12.2010, 23:18  [ТС] #3
А если всё-таки оставить реализацию строки как массива чаров?
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
10.12.2010, 23:19 #4
Цитата Сообщение от dido11 Посмотреть сообщение
А если всё-таки оставить реализацию строки как массива чаров?
Зачем?Если так проще.
0
dido11
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
10.12.2010, 23:34  [ТС] #5
Затем, что я не знаю, как реализовать строки через string, а через char более-менее разобрался.
Действительно дурацкая ситуация, к утру нужно сдать программу написанную на языке, на котором я никогда не писал.

Добавлено через 12 минут
Разобрался, я дурак просто, ведь я заранее определил
C++
1
LenStr=strlen(Str);
а теперь удивляюсь, что размерность массива не увеличивается
0
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
10.12.2010, 23:48 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
#include <windows.h>
 
int main(void){
    char * str = "string", * pstr;
    int len = strlen(str);
    int i, j;
    
    printf("%s", str);
    for ( i = 1; i <= len; ++i ){
        Sleep(1000);
        for ( j = 0; j < len; ++j )
            putchar('\b');
        for ( j = 0; j < i; ++j )
            putchar('*');
        pstr = str;
        while ( j++ < len )
            putchar(*pstr++);
    }
    putchar('\n');
    
    return 0;
}
0
dido11
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
11.12.2010, 01:58  [ТС] #7
Закончил программку, оцените плз, на сколько всё убого?
Ещё раз подчеркну, что это первый раз работы на Срр, то есть я открывал гугл, вбивал, к примеру, "работа со строками С++" или там "for в С++" и так вот делал.
Просто укажите на конкретные косяки в этом коде, не тыкая в то что, возможно, стоило делать всё иначе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <cstdlib>
#include <iostream>
#include <cstring>
 
using namespace std;
 
char MainStr[100] = "qwtrrtytweqwtwrertwerqwteqrweyqwerwterererqetwerqywrerrqywertqwrtqwrreqywterr";
char Str[100] = "terer";
int i,j,k,l,m,n,index;
int LenMainStr;
int LenStr;
 
 
 
int main(int argc, char *argv[])
{
LenMainStr=strlen(MainStr);
LenStr=strlen(Str);
 
 
for (i=1;i<=LenStr&&i!=0;)
{
     cout<<MainStr<<endl<<Str<<endl;     //Выводит главную строку (MainStr) и искомую строку (Str)                     
     if (MainStr[strlen(Str)-i]==Str[strlen(Str)-i])   //Если последний символ главной строки и последний символ искомой строки совпали...
     {
          cout<<MainStr[strlen(Str)-i]<<"="<<Str[strlen(Str)-i]<<endl;   //То показывает, что они совпали...
          i++;                                                           //И сравнивает следующий (предыдущий) символ
     }
     else                                                                //Иначе
     {
          cout/*<<"i= "<<i<<endl*/<<MainStr[strlen(Str)-i]<<"=/="<<Str[strlen(Str)-i]<<endl;   //Показывает, что они не совпали
          //i=0;
          if (i==1)                                                                            //Если не совпал 1ый символ
          {          
               //cout<<"MainStr[strlen(Str)-i]= "<<MainStr[strlen(Str)-i]<<endl;             
               m=0;                                                                            //Счётчик будующих звёздочек
               //cout<<strlen(Str)-i<<endl<<strlen(Str)-i-LenStr<<endl;
               //for (n=strlen(Str)-i;n>strlen(Str)-i-(LenStr-1);n--)
               n=strlen(Str)-i;                                                 //Возвращает индекс несовпавшего символа
               do                                                               //Проверяет вхождение несовпавшего символа в искомую строку
               {                                                                //
                   //cout<<"!"<<endl;                                           //
                    if (MainStr[strlen(Str)-i]!=Str[n])                         //Если несовпавший символ главной строки не равен Nному
                    {                                                           //символу искомой строки
                         //cout<<"Str[n]= "<<Str[n]<<endl;                      //                      
                         m=m+1;                                                 //То счётчик звёздочек возрастает
                         //cout<<"m= "<<m<<endl;                                //
                    }                                                           //
                    n--;                                                        //Счётчик N уменьшается, чтобы провериь следующий (предыдущий) символ
               }                                                                //искомой строки
               while (n>strlen(Str)-i-LenStr&&MainStr[strlen(Str)-i]!=Str[n]);  //Пока не проверит все символы искомой строки, либо не найдёт            
          }                                                                     //совпадения
          else                                                                                  //Если-таки совпал не 1ый эл-нт
          m=1;                                                                                  //Ниже добавляется только 1 звёздочка
          
          for (j=1;j<=m;j++)                                           //Добавляет определённое кол-во звёздочек в начало искомой строки
          {                                                            //
               for (k=strlen(Str); k>=0;k--)                           //
               Str[k+1]=Str[k];                                        //
               Str[0]='*';                                             //
               //cout<<Str<<" "<<"strlen "<<strlen(Str)<<endl;         //
               i=1;                                                    //
               index=index+1;                                          //
               //system("PAUSE");                                      //
          }
    
     }
   
}
 cout<<"Matching found, it's index= "<<index<<endl;  
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Забыл добавить, это как бы упрощённый Алгоритм поиска Бойера-Мура, без таблицы суффиксов
0
ForEveR
В астрале
Эксперт С++
7973 / 4735 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
11.12.2010, 02:00 #8
dido11, Глобальные переменные и волшебные числа - главный косяк любого кода
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 02:00
Привет! Вот еще темы с ответами:

Требуется консультация математиков. - Математика
Доброго времени суток, уважаемые форумчане. Подскажите пожалуйста как вычисляется подобная функция:

требуется квалифицированная консультация - SEO
Помогите советом по оптимизации и продвижению

Требуется консультация в решении задач - VBA
1)Вложение 2)Дан массив натуральных чисел. Найти количество и сумму элементов, кратных заданных числу К 3)Элементарные операции с...

Ширина сайта требуется консультация! - HTML, CSS
Добрый день всем! У меня есть несколько вопросов. Дело в том что в данный момент я задался длительной целью создать городского портал, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.12.2010, 02:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru