Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2013, 22:24   #21
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

GexogenSG1, а для чего, собственно, вам нужна эта программа?
RussDragon вне форума Ответить с цитированием
Старый 22.06.2013, 22:34   #22
GexogenSG1
Пользователь
 
Регистрация: 16.06.2013
Сообщений: 18
По умолчанию

RussDragon, для экзамена по программированию =) В предыдущем посте приложил скрин, есть идеи по поводу этой ошибки?
GexogenSG1 вне форума Ответить с цитированием
Старый 22.06.2013, 22:41   #23
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

У вас проблемы в IDE, у меня все работает корректно.
RussDragon вне форума Ответить с цитированием
Старый 22.06.2013, 23:10   #24
GexogenSG1
Пользователь
 
Регистрация: 16.06.2013
Сообщений: 18
По умолчанию

Всем большое прибольшое спасибо) Теперь у меня целых два кода))
Код:
#include <iostream>
#include <string>
#include <cstddef>
using namespace std;
void foo(string &str1, const size_t pos, const string &str2)
{
    str1.insert(pos, str2);
}
 
int main()
{
    string str1 = "111-><-111", str2 = "000";
    size_t pos = 5;
    foo(str1, pos, str2);
    cout << str1 << endl;
}
Код:
#include <iostream>
#include <string>
 
using namespace std;
 
void
foo(string &str1, const size_t pos, const string &str2)
{
    str1.insert(pos, str2);
}
 
int
main()
{
    string str1;
    string str2;
    int ch;
    cout << "Stroka1" << endl;
    getline(cin, str1);
    cout << "Stroka2" <<endl;
    getline(cin, str2);
    cout << "Nomer simvola" <<endl;
    cin >> ch;
    foo(str1, ch, str2);
    cout << str1;
}
GexogenSG1 вне форума Ответить с цитированием
Старый 22.06.2013, 23:35   #25
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

BDA, можете подсказать, для чего тип size_t? Не хочу создавать для этого вопроса тему отдельную.
RussDragon вне форума Ответить с цитированием
Старый 22.06.2013, 23:39   #26
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

RussDragon:
Цитата:
Сообщение от http://www.viva64.com/ru/a/0050/
Тип size_t

Тип size_t - базовый беззнаковый целочисленный тип языка Си/Си++. Является типом результата, возвращаемого оператором sizeof. Размер типа выбирается таким образом, чтобы в него можно было записать максимальный размер теоретически возможного массива любого типа. Например, на 32-битной системе size_t будет занимать 32-бита, на 64-битной - 64-бита. Другими словами в переменную типа size_t может быть безопасно помещен указатель. Исключение составляют указатели на функции классов, но это особый случай. Хотя в size_t можно помещать указатель, для этих целей лучше подходит другой беззнаковый целочисленный тип uintptr_t, само название которого отражает эту возможность. Типы size_t и uintptr_t являются синонимами. Тип size_t обычно применяется для счетчиков циклов, индексации массивов, хранения размеров, адресной арифметики.

Максимально допустимым значением типа size_t является константа SIZE_MAX.
Цитата:
Сообщение от http://www.cplusplus.com/reference/cstring/size_t/
Unsigned integral type
Alias of one of the fundamental unsigned integer types.

It is a type able to represent the size of any object in bytes: size_t is the type returned by the sizeof operator and is widely used in the standard library to represent sizes and counts.

In <cstring>, it is used as the type of the parameter num in the functions memchr, memcmp, memcpy, memmove, memset, strncat, strncmp, strncpy and strxfrm, which in all cases it is used to specify the maximum number of bytes or characters the function has to affect.

It is also used as the return type for strcspn, strlen, strspn and strxfrm to return sizes and lengths.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.06.2013, 23:51   #27
GexogenSG1
Пользователь
 
Регистрация: 16.06.2013
Сообщений: 18
По умолчанию

BDA, а в этом коде для чего он нужен?)
GexogenSG1 вне форума Ответить с цитированием
Старый 23.06.2013, 00:05   #28
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Не совсем понял, это максимально-размерный int без знака?
RussDragon вне форума Ответить с цитированием
Старый 23.06.2013, 00:29   #29
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

GexogenSG1, для того, чтобы хранить максимально возможный размер.
Так что лучше:
Код:
#include <iostream>
#include <string>
 
using namespace std;
 
void
foo(string &str1, const size_t pos, const string &str2)
{
    str1.insert(pos, str2);
}
 
int
main()
{
    string str1;
    string str2;
    size_t ch;
    cout << "Stroka1" << endl;
    getline(cin, str1);
    cout << "Stroka2" <<endl;
    getline(cin, str2);
    cout << "Nomer simvola" <<endl;
    cin >> ch;
    foo(str1, ch, str2);
    cout << str1;
}
RussDragon, мне кажется, не стоит привязывать его к int. Это просто такой тип, который сможет безопасно хранить указатель. (int может быть меньше http://stackoverflow.com/questions/1...-int-vs-size-t)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.06.2013, 01:33   #30
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от RussDragon Посмотреть сообщение
Не совсем понял, это максимально-размерный int без знака?
Нет.

sizeof(size_t)==sizeof(void*)

sizeof(size_t) не обязательно будет таким же, как и sizeof(unsigned int)
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка [C++ Error] string.h(5): E2344 Earlier declaration of 'String' Pein95 C++ Builder 2 02.04.2013 21:18
Почему не работает метод insert? ( Связный список на C# ) rehvi Помощь студентам 1 27.03.2013 13:31
Метод перебора, Метод дихотомии, Метод золотого сечения Delphi !!! OneBri Помощь студентам 0 03.10.2012 08:42
Метод Insert не перемещает на указанный индекс желаемый таб в TabControl KorPaEv C# (си шарп) 1 20.12.2011 05:42
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57