Любитель |
Отправлено: 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; |
Это уже не катит
|
|
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 Георгий:
в те добрые времена расширение *.hpp было не модным для С/С++, всё больше хедеры имели расширение *.h (как щас помню, ни разу не натыкался на *.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 Георгий:
в те добрые времена расширение *.hpp было не модным для С/С++, всё больше хедеры имели расширение *.h (как щас помню, ни разу не натыкался на *.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 вспомню
Отредактировано Георгий — 19/06/2005, 21:26 |
|