Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 1
Регистрация: 07.07.2012
Сообщений: 90
1

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

12.07.2012, 12:49. Просмотров 2133. Ответов 8
Метки нет (Все метки)

Решил попробовать со строками поработать, сразу же возникло несколько вопросов:

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

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

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

* ToString() - перевести в строку.
Вот тут я вобще закопался... Объясните поподробнее как переводить в строку переменную какую либо? (Допустим я получил кол-во символов в строке и хочу их вывести в консоль)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2012, 12:49
Ответы с готовыми решениями:

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

Необходимо во веденной строке определить наличие русских и английских символов
Необходимо во веденной строке определить наличие русских и английских символов и,если есть...

Функция strlen() . Получить количество символов в строке
В чем ошибка? #include <stdio.h> #include <conio.h> #include <iostream> #include <string>...

аписать программу подсчитывающую к-во символов в веденной строке.
Ввести строку символов. Написать программу подсчитывающую к-во символов в веденной строке. ...

8
Каратель
Эксперт С++
6593 / 4014 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
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-е указатель
как влияет - разжёвывать не будем, для этого есть литература
0
1311 / 973 / 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
Цитата Сообщение от 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() и др. Опять-таки более накладно.
0
2 / 2 / 1
Регистрация: 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;
0
21 / 17 / 4
Регистрация: 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;
0
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
13.07.2012, 16:09 7
Вам уже написали Выше.
Цитата Сообщение от Jupiter Посмотреть сообщение
переменноя типа std::string является объектом и для нее нужно вызывать метод length
0
2 / 2 / 1
Регистрация: 07.07.2012
Сообщений: 90
13.07.2012, 20:41  [ТС] 8
я не знаю что такое метод length
0
Каратель
Эксперт С++
6593 / 4014 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
13.07.2012, 20:46 9

Не по теме:

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


C++
1
2
3
4
string sTest;
cout << "Введи строку: "; 
cin >> sTest;
cout << sTest.length() << endl;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2012, 20:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Множества. Найти количество цифр в веденной строке
Используя множества найти количество цифр в веденной строке.

Определить количество слов в веденной строке которые начинаются с большой буквы
помогите пожалучто! Определить количество слов в веденной строке которые начинаются с большой...

Получить в строке символов разделённой пробелами количество слов начинающихся с ''d''
1)Получить в строке символов разделённой пробелами кол-во слов начинающихся с ''d''. 2)из строки...

Во введенной строке символов получить количество букв, цифр, слов
Во введенной строке символов полечить количество букв (отдельно русского ■ английскою...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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