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

Количество символов в строке - C++

Восстановить пароль Регистрация
 
nostalex
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 56
15.03.2014, 19:18     Количество символов в строке #1
String.h
C++
1
2
3
4
5
6
7
8
9
10
class String
{
public:
    String();
    ~String();
    void AddText();
    int Whole();
private:
    string textline;
};
String.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "String.h"
#include <iostream>
#include <string>
 
using namespace std;
 
void String::AddText()
{
    cout << "Enter the text: ";
    cin >> textline;
}
 
int String::Whole()
{
    return textline.length();
}
Text.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef TEXT_H
#define TEXT_H
#include "String.h"
#include <vector>
 
using namespace std;
 
class Text
{
public:
    void CharQuantity();
    void Add();
private:
    vector<String> lines;
    int LinesQuantity;
};
Text.cpp
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
#include "stdafx.h"
#include "Text.h"
#include "String.h"
#include <iostream>
#include <algorithm>
 
using namespace std;
 
Text::Text()
{
}
void Text::Add()
{
    String L;
    L.AddText();
    lines.push_back(L);
    LinesQuantity++;
}
void Text::CharQuantity()
{
    int C = 0;
    for (int i = 0; i < LinesQuantity; i++)
    {
        C = C + lines[i].Whole();
    }
    cout << "Characters quantity: " << endl;
    cout << C << endl;
}
Подскажите, почему в CharQuantity не считает количество символов в введенной строке?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
15.03.2014, 19:22     Количество символов в строке #2
Должно, вроде, работать. Покажите весь код.
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
15.03.2014, 19:25     Количество символов в строке #3
use str.size();
nostalex
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 56
15.03.2014, 22:14  [ТС]     Количество символов в строке #4
Код довольно большой, но ладно.
Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "String.h"
#include "Text.h"
 
void main()
{
    Text text;
    text.Add();
    text.CharQuantity();
}
String.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef STRING_H
#define STRING_H
#include <iostream>
#include <cstring>
 
using namespace std;
class String
{
public:
    String();
    ~String();
    void AddText();
    void DeleteText();
    int Whole();
    void Print();
private:
    string textline;
};
#endif
String.cpp
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
#include "stdafx.h"
#include "String.h"
#include <iostream>
#include <string>
 
using namespace std;
 
String::String()
{
}
void String::AddText()
{
    cout << "Enter the text: ";
    cin >> textline;
}
void String::DeleteText()
{
    textline = "";
}
int String::Whole()
{
    return textline.length();
}
void String::Print()
{
    cout << textline;
    cout << "\n";
}
String::~String()
{
}
Text.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef TEXT_H
#define TEXT_H
#include "String.h"
#include <vector>
 
using namespace std;
 
class Text
{
public:
    void Del();
    void CharQuantity();
    void Add();
    void Sorting();
    void Print();
    Text();
    ~Text();
private:
    vector<String> lines;
    int LinesQuantity;
};
#endif
Text.cpp
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
#include "stdafx.h"
#include "Text.h"
#include "String.h"
#include <iostream>
#include <algorithm>
 
using namespace std;
 
Text::Text()
{
}
void Text::Add()
{
    String L;
    L.AddText();
    lines.push_back(L);
    LinesQuantity++;
}
void Text::Del()
{
    if (LinesQuantity != 0)
    {
        lines.erase(lines.begin() + (LinesQuantity - 1));
        LinesQuantity--;
    }
}
void Text::CharQuantity()
{
    int C = 0;
    for (int i = 0; i < LinesQuantity; i++)
    {
        C = C + lines[i].Whole();
    }
    cout << "Characters quantity: " << endl;
    cout << C << endl;
}
void Text::Sorting()
{
    for (int i = 0; i < LinesQuantity - 1; i++)
    {
        for (int j = 0; j < LinesQuantity - 1; j++)
        {
            if (lines[j].Whole() > lines[j + i].Whole())
            {
                swap(lines[j], lines[j+1]);
            }
        }
    }
}
void Text::Print()
{
    for each (String l in lines)
    {
        l.Print();
    }
}
Text::~Text()
{
}
Добавлено через 3 минуты
Вы имеете в виду сделать так?
C++
1
2
3
4
int String::Whole()
{
    return textline.size();
}
Lanhua
Сообщений: n/a
06.10.2014, 12:23     Количество символов в строке #5
Если нужно просто подсчитать количество символов в строке, то есть примитивное решение:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
void main()
{
int counter=0;
char str[80];
cout<<"\nPhrase:"<<endl;
cin>>str;
while (str[++counter]!='\0');
cout<<counter<<endl;
}
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
06.10.2014, 13:04     Количество символов в строке #6
C++
1
2
3
4
    for (int i = 0; i < lines.size(); i++)
    {
        C = C + lines[i].Whole();
    }
Переменная LinesQuantity лишняя во всем коде.
Yandex
Объявления
06.10.2014, 13:04     Количество символов в строке
Ответ Создать тему
Опции темы

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