Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/64: Рейтинг темы: голосов - 64, средняя оценка - 4.64
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90

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

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

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

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

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

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

* ToString() - перевести в строку.
Вот тут я вобще закопался... Объясните поподробнее как переводить в строку переменную какую либо? (Допустим я получил кол-во символов в строке и хочу их вывести в консоль)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.07.2012, 12:49
Ответы с готовыми решениями:

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

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

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

8
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
12.07.2012, 12:53
Цитата Сообщение от 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
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.07.2012, 12:55
1) Нужно подключить заголовок #include <string>

2) Две основные вещи
1. Строки с завершающим 0 нельзя обрабатывать стандартными С++ операторами и их нельзя использовать в обычных С++ выражениях.
2. Безопасность. Очень легко выйти за границы массива
3) int size = strlen(array); - размер
0
 Аватар для Fooly
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
12.07.2012, 13:01
Цитата Сообщение от 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
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
13.07.2012, 13:00  [ТС]
Немогу я получить кол-во символов в строке типа 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
 Аватар для Fooly
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
13.07.2012, 15:38
нужно .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
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
13.07.2012, 16:09
Вам уже написали Выше.
Цитата Сообщение от Jupiter Посмотреть сообщение
переменноя типа std::string является объектом и для нее нужно вызывать метод length
0
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
13.07.2012, 20:41  [ТС]
я не знаю что такое метод length
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
13.07.2012, 20:46

Не по теме:

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


C++
1
2
3
4
string sTest;
cout << "Введи строку: "; 
cin >> sTest;
cout << sTest.length() << endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2012, 20:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru