2 / 2 / 1
Регистрация: 07.07.2012
Сообщений: 90
|
|
1 | |
Получить количество символов во веденной строке12.07.2012, 12:49. Просмотров 3334. Ответов 8
Метки нет Все метки)
(
Решил попробовать со строками поработать, сразу же возникло несколько вопросов:
1) В C++ тип string не встроен? Нужно подключать библиотеку? 2) В чем различие char от string? 3) Как использовать функции: * strlen - получить кол-во символов в строке. Попытался получить кол-во символов в веденной строке, возникли проблемы: 1. Нельзя получить кол-во символов в переменной типа string? ( Так ли это? ) 2. Пишет использована неинициализированная локальная переменная "sTest" (sTest задается с помощью cin) 3. В чем разница, и как это влияет вобще на программу: char sTest и char *sTest? * ToString() - перевести в строку. Вот тут я вобще закопался... Объясните поподробнее как переводить в строку переменную какую либо? (Допустим я получил кол-во символов в строке и хочу их вывести в консоль)
0
|
|
12.07.2012, 12:49 | |
Необходимо во веденной строке определить наличие русских и английских символов Функция strlen() . Получить количество символов в строке аписать программу подсчитывающую к-во символов в веденной строке. |
|
Каратель
![]() |
|
12.07.2012, 12:53 | 2 |
std::string входит в стандартную библиотеку С++, но не является встроеным
char - целочисленный встроенный тип, предназначеный для хранения символа(один char - хранит один символ) std::string - класс динамически расширяемой строки функции типа strlen из string.h/cstring предназначены для Си-шных строк - массивов имеющих тип char переменноя типа std::string является объектом и для нее нужно вызывать метод length 1-е символ 2-е указатель как влияет - разжёвывать не будем, для этого есть литература
0
|
1312 / 974 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
|
|
12.07.2012, 12:55 | 3 |
1) Нужно подключить заголовок #include <string>
2) Две основные вещи 1. Строки с завершающим 0 нельзя обрабатывать стандартными С++ операторами и их нельзя использовать в обычных С++ выражениях. 2. Безопасность. Очень легко выйти за границы массива 3) int size = strlen(array); - размер
0
|
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
|
|
12.07.2012, 13:01 | 4 |
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() и др. Опять-таки более накладно.
0
|
2 / 2 / 1
Регистрация: 07.07.2012
Сообщений: 90
|
||||||
13.07.2012, 13:00 [ТС] | 5 | |||||
Немогу я получить кол-во символов в строке типа string, пишет такую ошибку:
error C2664: strlen: невозможно преобразовать параметр 1 из "std::string" в "const char *" Код:
0
|
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
|
||||||
13.07.2012, 15:38 | 6 | |||||
нужно .size использовать, должно помочь
0
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
13.07.2012, 16:09 | 7 |
0
|
2 / 2 / 1
Регистрация: 07.07.2012
Сообщений: 90
|
|
13.07.2012, 20:41 [ТС] | 8 |
я не знаю что такое метод length
0
|
Каратель
![]() |
||||||
13.07.2012, 20:46 | 9 | |||||
0
|
13.07.2012, 20:46 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |