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

организовать функцию подсчета символов - C++

Восстановить пароль Регистрация
 
MDK_17R
Заблокирован
05.12.2013, 16:13     организовать функцию подсчета символов #1
есть программа
на вход подаём количество строк, далее вводим ФИО через пробел
на выходе получаем инициалы и фамилию
Пример:
ввели:
-Иванов Иван Иванович
-Петров Сергей Витальевич
получили:
-И. И. Иванов
-С. В. Петров

в чем собственно вопрос:
- необходимо создать такую функцию, которая будет делать выводы
пример:
ввели:
-Иванов Иван Иванович
-Киль Сергей Витальевич
получили:
-И. И. Иванов
-С. В. Киль
- первая строка 12 символов
- вторая строка 10 символов

есть у кого какие идеи, как организовать такую функцию?
сижу на лабе, сказале сейчас переделать, времени мало а мне для этого миниму пол дня нужно, чтобы организовать такую функцию

вот собственно сам исходник:

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
#include   <iostream>
#include   <string.h>
using   namespace   std ;
 
 
void   delete_memory  ( char**  text ,   int  n )
{
    for   ( int  i = 0 ;   i < n ;   i++ )
    {
        delete []   text [ i ] ;
    }
    delete []   text ;
}
char**   new_memory  ( int  n )
{
    char**   text  =  new char* [ n ] ;
    int   i  =  0 ;
    {
        for   (;  i  <  n ;   i++ )
        {
            text [ i ]   =   new char [ 255 ] ;
        }
    }
 
    return   text ;
}
 
void   filling_massiv  ( char**  text ,   int  n )
{
    for   ( int  i  =  0 ;   i  <  n ;   i++ )
    {
        cin.getline  ( text [ i ] ,  255 ) ;
    }
 
}
int copystrong  ( char*  string ,   char*  result ,   int  from ,  int  unto ,   int  i )
{
    for  ( int  j  =  from ;  j  <  unto ;  i++ ,  j++ )
    {
        result [ i ]   =   string [ j ] ;
    }
    return   i ;
}
char*   swap ( char*  string )
{
 
    int    fe   =   0 ;
    for  (;  string [ fe ]   !=   ' '   &&   string [ fe ]   !=   0 ;  fe++ ) ;
    char*  result   =   new char [ fe + 6 ] ;
    int   sb   =   fe  +  2 ;
    int   se   =   sb ;
    for  (;  string [ se ]   !=   ' ' ;   se++ ) ;
    int   kb   =   se   +   2 ;
    int   ke   =   0 ;
    for  ( ke   =   kb ;  string [ ke ]   !=   0 ;   ke++ ) ;
    int   i   =   0 ;
    i   =   copystrong ( string ,  result ,  sb - 1 ,  sb ,  i ) ;
    result  [ i ]   =   '.' ;
    i++ ;
    i   =   copystrong ( string ,  result ,  kb - 1 ,  kb ,  i ) ;
    result  [ i ]   =   '.' ;
    i++ ;
    result  [ i ]   =   ' ' ;
    i++ ;
    i   =   copystrong ( string ,  result ,  0 ,  fe ,  i ) ;
    result  [ i ]   =   0 ;
    return   result ;
}
char**   change_text ( int   n ,   char **   text )
{
    char**    result   =   new_memory ( n ) ;
    for   ( int  i  =  0 ;   i  <  n ;   i++ )
    {
        result  [ i ]   =   swap ( text [ i ] ) ;
    }
    return   result ;
}
void   output_text ( int   n ,  char**   text )
{
    for  ( int   i  =  0 ;   i  <  n ;   i++ )
    {
        cout   <<   text [ i ]   <<   endl ;
    }
}
int   main ( )
{
    int   n   =   0 ;
    cout   <<   " Vvedite kolichestvo strok: "   <<   endl ;
    cin   >>   n ;
    cin.ignore ( ) ;
    {
        char**  text   =   new_memory ( n ) ;
        filling_massiv  ( text ,  n ) ;
        char**  texttwo   =   change_text ( n ,  text ) ;
        output_text   ( n ,  texttwo ) ;
        delete_memory  ( text ,  n ) ;
        delete_memory  ( texttwo ,  n ) ;
    }
 
    system   ( " pause " ) ;
    return  0 ;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
05.12.2013, 17:09     организовать функцию подсчета символов #2

str.lenght() ....
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
05.12.2013, 17:46     организовать функцию подсчета символов #3
Хм, может быть вот так?
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
#include <iostream>
#include <vector>
#include <string>
#include <cctype>
using namespace std;
 
vector<string> split(const string& s);
void show(const string& s);
 
int main()
{
    string str = "Petrov Petr Petrovich";
    show(str);
    return 0;
}
 
vector<string> split(const string& s)
{
    vector<string> ret;
    typedef string::size_type string_size;
    string_size i = 0;
 
    while (i != s.size())
    {
        while (i != s.size() && isspace(s[i]))
            ++i;
        string_size j = i;
        while (j != s.size() && !isspace(s[j]))
            ++j;
        if (i != j)
        {
            ret.push_back(s.substr(i, j - i));
            i = j;
        }
    }
    return ret;
}
 
void show(const string& s)
{
    vector<string> tmp = split(s);
    cout << tmp[1][0] << ". " << tmp[2][0] << ". " << tmp[0] << '\n';
}
MDK_17R
Заблокирован
06.12.2013, 11:09  [ТС]     организовать функцию подсчета символов #4
Цитата Сообщение от d1skort Посмотреть сообщение
Хм, может быть вот так?
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
#include <iostream>
#include <vector>
#include <string>
#include <cctype>
using namespace std;
 
vector<string> split(const string& s);
void show(const string& s);
 
int main()
{
    string str = "Petrov Petr Petrovich";
    show(str);
    return 0;
}
 
vector<string> split(const string& s)
{
    vector<string> ret;
    typedef string::size_type string_size;
    string_size i = 0;
 
    while (i != s.size())
    {
        while (i != s.size() && isspace(s[i]))
            ++i;
        string_size j = i;
        while (j != s.size() && !isspace(s[j]))
            ++j;
        if (i != j)
        {
            ret.push_back(s.substr(i, j - i));
            i = j;
        }
    }
    return ret;
}
 
void show(const string& s)
{
    vector<string> tmp = split(s);
    cout << tmp[1][0] << ". " << tmp[2][0] << ". " << tmp[0] << '\n';
}
ну да, возможно и так, только как её в мой исходник запилить?
Yandex
Объявления
06.12.2013, 11:09     организовать функцию подсчета символов
Ответ Создать тему
Опции темы

Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru