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

строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Случайные числа http://www.cyberforum.ru/cpp-beginners/thread134497.html
Можно ли генерировать случайные числа типа float с помощью rand()?
C++ Найти минимальный элемент массива и определить его местоположение Задание:Дан массив чисел. Найти минимальный элемент массива и определить его местоположение. у меня программка неправильное значение показывает... Когда компилируешь ошибок нет и минимальный... http://www.cyberforum.ru/cpp-beginners/thread134492.html
C++ Количество перестановок при сортировке массива
Как вывести число количества перестановок после сортировки массива, допустим выбору?
C++ Массив
Задание: все нулевые элементы массива размещены в шахматном порядке, начиная с 1-го элемента 1-й строки.
C++ Виртуальный базовый класс http://www.cyberforum.ru/cpp-beginners/thread134464.html
Создать иерархию типов, описывающую - человека, студента, отца семейства и студента-отца семейства. Использовать виртуальные базовые классы. Написал, некомпилится, подскажите где ошибка, пожалуйста....
C++ unknown software exception (0x00000fd) в приложении по адресу 0x00401569 Всем привет) Помогите разобратся с ошибкой. #include <windows.h> HINSTANCE hInstance; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); подробнее

Показать сообщение отдельно
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
24.05.2010, 11:22
Завалялась такая программка (без использования стандартных функций). Может, чем попожет
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
const int SIZE =80;
 
void form (char*, char*, char*);
char *probel2 (char *in);
char *probel1 (char *in);
char *copyword (char *, char *, int);
int opr (char *a, char *b, int, int);
void ud(char*, char*);
 
void main()
{
    char buf[SIZE],buf2[SIZE], buf3[SIZE]={' '}, outbuf[SIZE]={' '};
 
    while(cout<<"Vvedite 1 stroky: ",
    cin.getline(buf, SIZE),cout<<"Vvedite 2 stroky: ", cin.getline(buf2, SIZE))
    {   
        ud(buf2, buf3);
        form (buf, buf3, outbuf);
        cout<<"Rezultat: "<<outbuf;
        cout<<endl;
    }
}
void form (char *a,char *b, char *out)
{   
    
    char *first=a; 
    char *first2=b;
    char *z=b;
    int k=0;
    *out='\0';
 
    while (*(first=probel1(a)))
    {
        a=probel2(first);
        b=z;
        while (*(first2=probel1(b)))
        {
            b=probel2(first2);
            k=opr(first, first2, a-first, b-first2);
            if (k>0)
                out=copyword(first2,out,a-first);
        }
    }
    cout<<endl;
}
void ud (char *s, char *b)
{
    char *a=s;
    char *p=b, *z=b; 
    int u=0;
 
    a=probel1(s);
    s=probel2(a);
    b=copyword(a,b,s-a);
 
    char *t=b;
    cout<<endl;
 
    while (*(a=probel1(s)))
    {
        s=probel2(a);
        t=z;
        while (*(p=probel1(t)))
        {
            t=probel2(p);
            u=opr(a,p, s-a, t-p);
 
            if(u==0)
                continue;
            else
                break;
        }
        if (u==0)
            b=copyword(a,b,s-a);    
    }
    cout<<endl;
}
int opr (char *t, char *r, int len, int len2)
{
    int k=0;
    if (len!=len2)
        return 0;
    else
    {
         for (int j=0; j<len; j++)
         {
             if (*t++==*r++)
                k=1;
            else 
            {
                k=0;
                break;
            }
         }
    return k;
     }      
}
char *probel1(char *in)
{ 
    while (*in&&(*in==' ')||(*in=='\t'))
        in++;
    return in;
}
char *probel2 (char *in)
{
    while (*in&&*in!=' '&&*in!='\t')
        in++;
    return in;
}
char *copyword (char * from, char *to, int len)
{
    for (int j=0; (j<len)&&(*to++=*from++); j++)
        ;
    
    *to++=' ';
    *to='\0';
 
    return to;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru