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

Получить количество символов во веденной строке - C++

Восстановить пароль Регистрация
 
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
12.07.2012, 12:49     Получить количество символов во веденной строке #1
Решил попробовать со строками поработать, сразу же возникло несколько вопросов:

1) В C++ тип string не встроен? Нужно подключать библиотеку?

2) В чем различие char от string?

3) Как использовать функции:
* strlen - получить кол-во символов в строке.
Попытался получить кол-во символов в веденной строке, возникли проблемы:
1. Нельзя получить кол-во символов в переменной типа string? ( Так ли это? )
2. Пишет использована неинициализированная локальная переменная "sTest" (sTest задается с помощью cin)
3. В чем разница, и как это влияет вобще на программу: char sTest и char *sTest?

* ToString() - перевести в строку.
Вот тут я вобще закопался... Объясните поподробнее как переводить в строку переменную какую либо? (Допустим я получил кол-во символов в строке и хочу их вывести в консоль)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 12:49     Получить количество символов во веденной строке
Посмотрите здесь:

Найти количество символов в строке C++
C++ Количество неодинаковых символов в строке
C++ Написать программу замены во веденной строке малых букв а на заглавные Написать программу замены во веденной строке малых букв а на заглавные
C++ Нужно посчитать количество символов пунктуации (: ; ? ! , .) в веденной строке
Посчитать количество символов в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.07.2012, 12:53     Получить количество символов во веденной строке #2
Цитата Сообщение от Flaker Посмотреть сообщение
1) В C++ тип string не встроен? Нужно подключать библиотеку?
std::string входит в стандартную библиотеку С++, но не является встроеным

Цитата Сообщение от Flaker Посмотреть сообщение
2) В чем различие char от string?
char - целочисленный встроенный тип, предназначеный для хранения символа(один char - хранит один символ)
std::string - класс динамически расширяемой строки

Цитата Сообщение от Flaker Посмотреть сообщение
Как использовать функции:
* strlen - получить кол-во символов в строке.
функции типа strlen из string.h/cstring предназначены для Си-шных строк - массивов имеющих тип char

Цитата Сообщение от Flaker Посмотреть сообщение
1. Нельзя получить кол-во символов в переменной типа string? ( Так ли это? )
переменноя типа std::string является объектом и для нее нужно вызывать метод length

Цитата Сообщение от Flaker Посмотреть сообщение
3. В чем разница, и как это влияет вобще на программу: char sTest и char *sTest?
1-е символ
2-е указатель
как влияет - разжёвывать не будем, для этого есть литература
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
12.07.2012, 12:55     Получить количество символов во веденной строке #3
1) Нужно подключить заголовок #include <string>

2) Две основные вещи
1. Строки с завершающим 0 нельзя обрабатывать стандартными С++ операторами и их нельзя использовать в обычных С++ выражениях.
2. Безопасность. Очень легко выйти за границы массива
3) int size = strlen(array); - размер
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
12.07.2012, 13:01     Получить количество символов во веденной строке #4
Цитата Сообщение от Flaker Посмотреть сообщение
Решил попробовать со строками поработать, сразу же возникло несколько вопросов:

1) В C++ тип string не встроен? Нужно подключать библиотеку?

2) В чем различие char от string?

3) Как использовать функции:
* strlen - получить кол-во символов в строке.
Попытался получить кол-во символов в веденной строке, возникли проблемы:
1. Нельзя получить кол-во символов в переменной типа string? ( Так ли это? )
2. Пишет использована неинициализированная локальная переменная "sTest" (sTest задается с помощью cin)
3. В чем разница, и как это влияет вобще на программу: char sTest и char *sTest?

* ToString() - перевести в строку.
Вот тут я вобще закопался... Объясните поподробнее как переводить в строку переменную какую либо? (Допустим я получил кол-во символов в строке и хочу их вывести в консоль)
1) нужно подключать #include <cstring>
2) лучше использовать для строк string, char используется как массив, т.е char name[]. Вообщем более накладно =)
3) strlen(name) вот так использовать, возвращает количество видимых симвлов. Т.е если у тебя массив char name[10], а в нём 5 символов, то strlen выведет 5, а не размер массива.

ЗЫ строки лучше испольщовать т.к их можно соединять и копировать очень просто: str1=str2; str3=str1+str2. Чтобы продлеать с char такое, нужно использовать strcpy() strcat() и др. Опять-таки более накладно.
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
13.07.2012, 13:00  [ТС]     Получить количество символов во веденной строке #5
Немогу я получить кол-во символов в строке типа string, пишет такую ошибку:
error C2664: strlen: невозможно преобразовать параметр 1 из "std::string" в "const char *"


Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 setlocale(0,"");
 
    string sTest;
    int nLenghtStr = 0;
 
    cout << "Введи строку: "; 
    cin >> sTest;
 
 
    nLenghtStr = strlen(sTest);
 
    cout << nLenghtStr << endl;
 
 
    system("pause");
    return 0;
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
13.07.2012, 15:38     Получить количество символов во веденной строке #6
нужно .size использовать, должно помочь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 setlocale(0,"");
 
    string sTest;
    int nLenghtStr = 0;
 
    cout << "Введи строку: "; 
    cin >> sTest;
 
 
    nLenghtStr = sTest.size();
 
    cout << nLenghtStr << endl;
 
 
    system("pause");
    return 0;
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
13.07.2012, 16:09     Получить количество символов во веденной строке #7
Вам уже написали Выше.
Цитата Сообщение от Jupiter Посмотреть сообщение
переменноя типа std::string является объектом и для нее нужно вызывать метод length
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
13.07.2012, 20:41  [ТС]     Получить количество символов во веденной строке #8
я не знаю что такое метод length
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2012, 20:46     Получить количество символов во веденной строке
Еще ссылки по теме:

Заменить в веденной строке с клавиатуры все х на у C++
Количество символов в строке C++
Найти количество символов в строке, найти заданные буквы, разделить количество букв на количество символов C++

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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2012, 20:46     Получить количество символов во веденной строке #9

Не по теме:

Цитата Сообщение от Flaker Посмотреть сообщение
я не знаю что такое метод length
вот пичалька, видать продвинутся дальше N-й страницы книги трудно?


C++
1
2
3
4
string sTest;
cout << "Введи строку: "; 
cin >> sTest;
cout << sTest.length() << endl;
Yandex
Объявления
13.07.2012, 20:46     Получить количество символов во веденной строке
Ответ Создать тему
Опции темы

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