Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
VaDiG
30 / 27 / 3
Регистрация: 13.01.2014
Сообщений: 63
#1

Функции str.size() и str.length() - в чем их разница? - C++

25.01.2014, 19:31. Просмотров 4695. Ответов 5
Метки нет (Все метки)

Существует 2 функции для определения размера строки в string
C++
1
str.size()
и
C++
1
str.length()
В чем их разница? Почитал, что вроде бы разницы нет никакой, тогда зачем создавать 2 одинаковые функции?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 19:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции str.size() и str.length() - в чем их разница? (C++):

Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов? - C++
strncpy(itog,str,size+1); cout<<itog; itog вообще не выводится Добавлено через 2 минуты Вот код. #include <iostream> ...

как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str - C++
как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str - C++
Помогите ребят!!!!препод задачи дал для аттестации,сделал фактически все,кроме этой: "Написать и протестировать функцию, которая по...

реализация функции c_str() в моем классе Str - C++
Ребята, вот есть у меня в классе Str данные: private: Vec<char> data; char* buffer; В конструкторе я пишу: Str() :buffer(new...

почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? - C++
почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?..) #include <iostream> using namespace std; ...

Аналог str() в С++ - C++
Скажите, пожалуйста, аналог функции str() в С++

5
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,605
25.01.2014, 19:34 #2
length() - понятие длины, это предикатива чисто строк.
size() - метод, который определяет длину у контейнеров STL. string делали похожей на контейнеры по интерфейсу для удобства работы.
Разницы в реализации у функций нет
0
VaDiG
30 / 27 / 3
Регистрация: 13.01.2014
Сообщений: 63
25.01.2014, 19:37  [ТС] #3
MrGluck, все равно не пойму зачем 2 варианта? когда мы используем строки типа string мы можем пользоваться и тем и тем... для вызова той или иной функции ничего дополнительного не требуется кроме
C++
1
#include <string>
0
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,605
25.01.2014, 19:48 #4
потому что для кого то размер строки == её длина
для кого то привычнее думать "шаблонами (в значении штампами)" STL.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
25.01.2014, 20:29 #5
Цитата Сообщение от VaDiG Посмотреть сообщение
все равно не пойму зачем 2 варианта?
size более универсально, length точнее отражает сущность операции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vector>
#include <string>
#include <iostream>
     
template < typename Type >
typename Type::size_type foo ( const Type & obj ) {
    return obj.size () ;
    //return obj.length() ;
}
     
int main () {
    std::string str = "123" ;
    std::vector<int> vec { 1 , 2 , 3 , 4 } ;
    std::cout << foo ( str ) << std::endl ;
    std::cout << foo ( vec ) << std::endl ;
}
0
Tulosba
25.01.2014, 21:05     Функции str.size() и str.length() - в чем их разница?
  #6

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
предикатива
прерогатива?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 21:05
Привет! Вот еще темы с ответами:

Int to Str - C++
Подскажите, пожалуйста, как число преобразовать в string (не char)

Наследование STR c++ - C++
Построить производный класс Str10 как строку только из цифр. Определить методы: сравнения как чисел, преобразования в число, создание из...

Int To Str - C++
Добрый день, товарищи. Подскажите плиз. Есть структура: SSklad, массив SSklad Sklad;, и элемент массива Sklad.god (в структуре описан...

Классы STR с++ - C++
Построить класс Str с обязательными полями: длина строки; указатель char* под указатель на динамически выделяемую под строку память; ...


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

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

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