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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 305, средняя оценка - 4.99
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
#1

Посчитать количество символов в строке - C++

13.05.2010, 20:19. Просмотров 45760. Ответов 16
Метки нет (Все метки)

Хелп. Я только недавно начал изучать С++. Помогите сделать программу. Нужно посчитать количество всех элементов в строке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать количество символов в строке (C++):

Посчитать количество символов в строке - C++
Задание: Дана строка. Подсчитать количество различных символов, которые не являются буквами или цифрами, и вывести их на экран. Знаю...

Посчитать количество символов в строке - C++
Объясните как работает этот код. Он должен посчитать количество каждой буквы и вывести в порядке убывания. Можно подробно, если не...

Посчитать в строке количество латинских символов - C++
Запросить у пользователя строку и посчитать в ней количество символов латинского алфавита

Посчитать количество букв в введенной строке символов - C++
Хелп)) нужно написать программу, которая будет считать количество букв в введенной строке символов. я написала программу, но она...

В строке посчитать количество символов, которые введёт пользователь - C++
в строке посчитать количество символов,которые введёт пользователь

Посчитать количество подряд идущих символов в каждой строке - C++
привет всем. очень нужна помощь. бо бьюсь об неё уже не один день. дело в следующим: есть файл в нём строки с числами как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Cooler2
27 / 22 / 3
Регистрация: 11.06.2008
Сообщений: 56
13.05.2010, 20:25 #2
Цитата Сообщение от kuidreS Посмотреть сообщение
Хелп. Я только недавно начал изучать С++. Помогите сделать программу. Нужно посчитать количество всех элементов в строке.
C++
1
2
3
4
5
#include <cstring>
...
char* str = "Hello World";
int count = strlen(str);
printf("Количество символов в строке \"Hello World\" = %u\n", count);
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
13.05.2010, 20:40 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int strLength(const char* str)
{
    int size = 0;
    while(*str++) ++size;
    return size;
}
 
int main()
{
    const char* str = "asdasdqwdqd";
    printf( "%d\n", strLength(str) );
    return 0;
}
kuidreS
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 37
13.05.2010, 20:58  [ТС] #4
Посмотрите пожалуйста и скажите где ошибка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
void main()
{
char *str;
cout<<"Please, enter the string: ";
cin>>str;
int count = strlen(str);
cout<<"Sum of elements= "<<count;
getch();
}
tony733
2 / 2 / 0
Регистрация: 13.05.2010
Сообщений: 7
13.05.2010, 21:23 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
int main() {
    char *str;
    cout<<"Please, enter the string: ";
    cin>>str;
    int count = strlen(str);
    cout<<"Sum of elements= "<<count;
    getch();
    return 0;
}
Функция main() должна возвращать значение типа int.
Cooler2
27 / 22 / 3
Регистрация: 11.06.2008
Сообщений: 56
13.05.2010, 21:26 #6
Цитата Сообщение от kuidreS Посмотреть сообщение
Посмотрите пожалуйста и скажите где ошибка
В Вашем случае надо выделить свободную память для указателя, определив его размер:
C++
1
2
3
4
5
6
7
8
char* str = new char[80];
cout << "Please, enter the string: ";
cin >> str;
int count = strlen(str);
cout << "Sum of elements= " << count;
getch();
delete [] str;
return;
Добавлено через 2 минуты
Цитата Сообщение от tony733 Посмотреть сообщение
Функция main() должна возвращать значение типа int.
Необаязательно. Она может возвращать и void.
Но в конец программы нужно вставить ключевое слово
C++
1
return
tony733
2 / 2 / 0
Регистрация: 13.05.2010
Сообщений: 7
13.05.2010, 21:30 #7
Цитата Сообщение от kuidreS Посмотреть сообщение
Посмотрите пожалуйста и скажите где ошибка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
void main()
{
char *str;
cout<<"Please, enter the string: ";
cin>>str;
int count = strlen(str);
cout<<"Sum of elements= "<<count;
getch();
}
Цитата Сообщение от Cooler2 Посмотреть сообщение
В Вашем случае надо выделить свободную память для указателя, определив его размер:
C++
1
2
3
4
5
6
7
char* str = new char[80];
cout << "Please, enter the string: ";
cin >> str;
int count = strlen(str);
cout << "Sum of elements= " << count;
getch();
delete [] str;
насколько я понимаю при такой операции память выделится вот здесь
cin>>str;

Добавлено через 3 минуты
Цитата Сообщение от Cooler2 Посмотреть сообщение
Необаязательно. Она может возвращать и void.
Но в конец программы нужно вставить ключевое слово
Ну можно наверно, не спорю, но вроде как стандартнее записать int) Хотя не буду особо спорить, возможно я неправ)
easybudda
Модератор
Эксперт CЭксперт С++
9532 / 5525 / 932
Регистрация: 25.07.2009
Сообщений: 10,611
13.05.2010, 21:31 #8
Цитата Сообщение от tony733 Посмотреть сообщение
насколько я понимаю при такой операции память выделится вот здесь
cin>>str;
Не правильно понимаете. Ничего тут не должно выделяться. Мало того, при таком подходе, если память и выделена, но меньше, чем вводимая строка, будет переполнение...
Cooler2
27 / 22 / 3
Регистрация: 11.06.2008
Сообщений: 56
13.05.2010, 21:36 #9
kuidreS,
Рекомендую вместо
C++
1
cin >> str;
Воспользоваться функцией получения всей введенной строки:
C++
1
cin.getline(str, 80, '\n');
Где str - указатель под который выделена память в свободном хранилище,
80 - максимальное количество символов для прочтения
'\n' - символ, прекращающий процесс считывания строки. (Тут можно не только этот символ использовать).
tony733
2 / 2 / 0
Регистрация: 13.05.2010
Сообщений: 7
13.05.2010, 21:39 #10
Цитата Сообщение от easybudda Посмотреть сообщение
Не правильно понимаете. Ничего тут не должно выделяться. Мало того, при таком подходе, если память и выделена, но меньше, чем вводимая строка, будет переполнение...
Спасибо за разъяснение, терь буду знать) раз уж начали разговор- не могли бы вы посмотреть вот это?
http://www.cyberforum.ru/cpp-beginne...ead129329.html
sa80956847450d
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 9
27.05.2010, 22:32 #11
и наконец окончательный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
void main()
{
char* str = new char[80];
cout<<"Please, enter the string: ";
cin.getline(str, 80, '\n');
int count = strlen(str);
cout<<"Sum of elements= "<<count;
getch();
}
=)
mastic
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 3
21.03.2015, 17:12 #12
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
#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include <iostream>
 
using namespace std;
const int n = 80;
 
void Strin(char[]);
 
void main()
{
    setlocale(LC_ALL, "RUS");
    char str[n];
    cout << "enter string" << endl;
    gets(str);
    Strin(str);
 
 
    system("pause");
}
 
void Strin(char str[])
{
    int counter = 0;
    for (int i = 0; i < n; i++)
    {
        if (isalnum(str[i]))
        {
            if (i != 0)
            {
                int k;
                for (k = i - 1; k != 0; k--)
                {
                    if (str[i] == str[k])
                        break;
                }
                if (str[i] == str[k])
                    continue;
            }
            cout << str[i] << "=";
            for (int j = i + 1; j < n - 1; j++)
            {
                if (str[i] == str[j])
                {
                    counter++;
                }
            }
            cout << counter + 1 << endl;
            counter = 0;
        }
    }
 
}
Артем-
0 / 0 / 0
Регистрация: 18.03.2015
Сообщений: 5
25.03.2015, 11:28 #13
Здравствуйте,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <iostream>
# include <conio.h>
 
using namespace std;
 
int main()
{
    char mas1[5];
 
    cout<<"Vvedite stroku ";
    gets(mas1);
    cout<<endl;
 
    for(int i=0;i<5;i++)
    cout<<mas1[i];
 
    _getch();
    return 0;
}

не могу никак посчитать сколько символов в строке которую ввели

Добавлено через 53 минуты
нашол ответ )) #include <cstring>

Добавлено через 4 минуты
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
# include <iostream>
# include <conio.h>
#include <cstring>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
    char mas1[100];
    char len;
     
    cout<<"Vvedite stroku ";
    gets(mas1);
    cout<<endl;
    
    len = strlen(mas1);
 
    for(int i=0;i<len;i++)
    {
    cout<<mas1[i];
    }
    
    _getch();
    return 0;
}

теперь проблема с кодировкой
STRYTIK
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 1
30.03.2015, 23:48 #14
C++
1
2
3
4
5
6
7
8
#include<Windows.h> //библиотека нужная для кодировки
 
int main
{
SetConsoleCP(1251);// для ввода русского
SetConsoleOutputCP(1251);// для вывода русского
// код программы .......
system("pause");
maks242
46 / 20 / 7
Регистрация: 01.11.2013
Сообщений: 245
Завершенные тесты: 3
31.03.2015, 00:06 #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# include <iostream>
# include <conio.h>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russia");
    cout << "Введите строку с текстом: ";
    string SizeOfText;
    getline(cin, SizeOfText);
 
    cout << "Количество символов: " << SizeOfText.length() << endl;
    _getch();
    return 0;
}
Самый лучший способ, без всяких заморочек.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 00:06
Привет! Вот еще темы с ответами:

Нужно посчитать количество символов пунктуации (: ; ? ! , .) в веденной строке - C++
нужно посчитать количество символов пунктуации (: ; ? ! , .) в веденной строке, язык си.

Посчитать количество слов во введенной строке символов, начинающихся с «Т» или «т» - C++
Собственно вообще не осознаю как делать, может кто помочь? Есть наработка.. но почему то не работает, не хочет считать. Была мысль и...

Ввести строку символов, если ее длина кратна 2, посчитать количество цифр в этой строке. - C++
Помогите,пожалуйста, решить прогу....Ввести строку символов, если ее длина кратна 2, посчитать количество цифр в этой строке. Решить задачу...

В данной строке символов посчитать количество вхождений данной буквы - C++
Указатели и строки. 1) В данной строке символов посчитать кол-во данной буквы 2) Дана последовательность слов, найти кол-во слов в...


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

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

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