С++ строковые функции

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

С++ строковые функции

Сообщение d3drm » 05.09.2005 (Пн) 1:36

Вот было бы неплохо узнать как работать со строками в сипипи. Например такие функции, как бейсиковские Left, Right и Mid. C массивом char еще вроде как что-то понятно (немножко совсем... наверно...) а ведь есть еще какие-то строковые типы, наподобие LPCSTR и тп...
ХЎ

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.09.2005 (Пн) 9:31

Кроме массивов char, в Си ничего нет. LPCSTR - это, как легко увидеть, const char*.
В C++ есть классы string и cstring, можешь их в MSDN поискать.
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 05.09.2005 (Пн) 9:52

Используй библиотеку классов STL. Там есть много полезных функций.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.09.2005 (Пн) 10:01

Добейся того, чтобы было абсолютно понятно все с массивом char. Потом, как уже говорили, обрати внимание на класс CSTRING.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 05.09.2005 (Пн) 19:16

у меня строка из 9 символов, почему sizeof(строка) возвращает 4?
ХЎ

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.09.2005 (Пн) 19:33

Ну так еще 5 - это заголовок bmp-формата.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 05.09.2005 (Пн) 20:05

подскажите, народ. у меня есть:

LPCSTR a = "some.text";
char* b;

я хочу, чтобы длинна строки b была на 2 знака больше, чем а. Делаю так:

b = new char[strlen(a)+2];

но вместо двух знаков, добавляются 6!!!

то есть если два не прибавлять, а делать просто так:

b = new char[strlen(a)];

то добавляются лишние четыре знака... почему?

И как правильно реализовать задачу?
ХЎ

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 05.09.2005 (Пн) 22:42

d3drm - в MSDN!!!!!!!!!!!!!!!!!!!
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 05.09.2005 (Пн) 23:10

gaidar писал(а):d3drm - в MSDN!!!!!!!!!!!!!!!!!!!


ок, уже иду...
ХЎ


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 80

    TopList