C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
CharToString, и наоборот
Любитель
Отправлено: 18.06.2005, 20:36


Дежурный стрелочник

Группа: Участник
Сообщений: 53



CODE
AnsiString str1="Первая строка";
AnsiString str2="Вторая строка";
AnsiString str3=str1+str2;

Здесь все понятно. Но как сделать тоже самое с char?
CODE
char *str1="Первая строка";
char * str2="Вторая строка";
char * str3=str1+str2;

Это уже не катит sad.gif
Schumi
Отправлено: 18.06.2005, 21:26


Машинист паровоза

Группа: Участник
Сообщений: 206



strcat
strcpy
Любитель
Отправлено: 19.06.2005, 00:29


Дежурный стрелочник

Группа: Участник
Сообщений: 53



А SubString для char?
VovaN
Отправлено: 19.06.2005, 10:50


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Можно попробовать strncpy, при этом для источника "поправить" указатель (чтоб начинался с нужного символа)
Любитель
Отправлено: 19.06.2005, 11:35


Дежурный стрелочник

Группа: Участник
Сообщений: 53



CODE
AnsiString chars ="0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
AnsiString res = "";
Randomize();
for (int i=0; i<10; i++) res += chars.SubString(random(chars.Length()+1), 1);
return(res);

Как сделать тоже самое для char?
esh
Отправлено: 19.06.2005, 14:09


Дежурный стрелочник

Группа: Участник
Сообщений: 71



CODE
char *chars="0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
randomize();
char res[11];
for (int i=0; i<sizeof(res)-1; i++) res[i]=chars[random(strlen(chars))];
res[sizeof(res)-1]=NULL;
//return res;
Caption=res;


QUOTE
А SubString для char?


CODE
// Никакой проверки нет!
void CharSubString(char *dest,const char *src,int index,int length)
{
src+= --index;
memcpy(dest,src,length);
dest[length]=NULL;
}

// В программе
char *str="abcdefghijkl";
char buf[32];
CharSubString(buf,str,3,5);
Георгий
Отправлено: 19.06.2005, 16:50


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



народ, даже в самых древних трансляторах под DOS (напр. borland c++ 3.1) есть заголовочный файл "String.hpp" в котором описан класс String — дедушка современного std::string. и использовать его можно практически так же как и AnsiString.
olegenty
Отправлено: 19.06.2005, 18:51


Ветеран

Группа: Модератор
Сообщений: 2412



2 Георгий:
smile.gif в те добрые времена расширение *.hpp было не модным для С/С++, всё больше хедеры имели расширение *.h smile.gif (как щас помню, ни разу не натыкался на *.hpp, пока однажды не установил себе C++ Builder 2)
esh
Отправлено: 19.06.2005, 19:24


Дежурный стрелочник

Группа: Участник
Сообщений: 71



Я думаю, что Любителю нужно прочитать пару книг по С++, тогда не будет таких вопросов.

Отредактировано esh — 19/06/2005, 19:26
Георгий
Отправлено: 19.06.2005, 20:15


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



QUOTE (olegenty @ 19/06/2005, 19:51)
2 Георгий:
smile.gif в те добрые времена расширение *.hpp было не модным для С/С++, всё больше хедеры имели расширение *.h smile.gif (как щас помню, ни разу не натыкался на *.hpp, пока однажды не установил себе C++ Builder 2)

да — ошибся, в Borland C++ 3.1 заголовочный файл strng.h
но в watcom C 11.0 под DOS заголовочный string.hpp, а под QNX String.h

вот такие находчивые люди — что бы со стандартным string.h не путалось в одном случае сокращённое название дали, в другом hpp подписали, а в третьем с заглавной буквы написали (в QNX, как и во всех UNIX, имена файлов сравниваются с учётом регистра)

PS. когда с watcom C познакомился много нового узнал — в частности он позволял легко и не принуждённо использовать защищённый рещим (через расширитель DOS — DOS 4GW) и захватывать вплоть до 32 метров рамы, приличную библиотеку классов (от современного stl, функциональных отличий мало, отличия скорее структурные)
PPS. ещё немного и о БК 0010-01 вспомню biggrin.gif


Отредактировано Георгий — 19/06/2005, 21:26

Вернуться в Вопросы программирования в C++Builder