Текущий архив: 2007.10.28;
Скачать: CL | DM;
ВнизДинамическое формирование C-строки с несколькими 0 Найти похожие ветки
← →
Kostafey © (2007-10-06 13:19) [0]В продолжении ветки
http://delphimaster.net/view/15-1191573275/
Имеется C-строка:char params[80] =
"DSN=rjdgis\0"
"Database=Dor\0"
"Server=DB0TKD2J\0";
Далее я хочу формировать ее из параметров комадной строки.
Пробовал по-разному:void main(int argc, char *argv[])
{
if (argc = 4)
{
char* clDSN = argv[1];
char* clDatabase = argv[2];
char* clServer = argv[3];
char params[80] = "DSN=";
strcat(params,clDSN);
strcat(params,"\0 Database=");
strcat(params,clDatabase);
strcat(params,"\0 Server=");
strcat(params,clServer);
strcat(params,"\0");
Но та же strcat увидев \0 прекращает добавлять символы.
В данном случае получиться что-то вроде:
DSN=rjdgisDorDB0TKD2J
Если писать отдельно вместоstrcat(params,"\0 Database=");
strcat(params,"\0");
strcat(params,"Database=");
и т.д. то strcat(params,"\0"); не будет восприниматься и получиться что-то вроде
DSN=rjdgisDatabase=DorServer=DB0TKD2J
Так как же вставить в C-строку несколько символов \0 ?
← →
neanderthal (2007-10-06 13:32) [1]char params[80] = "DSN=";
strcat(params,clDSN);
strcat(params,"\0 Database=");
strcat(params,clDatabase);
strcat(params,"\0 Server=");
strcat(params,clServer);
strcat(params,"\0");
strcat(params,"ab");
strcat(params+3,"cde");
strcat(params+7,"fgh");
params[11]="\0"; //см. ниже
как парсить:
char *p=params;
while(*p)
{
do_something(p);
p+=strlen(p)+1;
}
← →
Kostafey © (2007-10-06 14:32) [2]
> [1] neanderthal (06.10.07 13:32)
Да, это работает. Спасибо.char params[80] = "DSN=";
strcat(params,clDSN);
int Marker;
Marker = strlen(params) + 1;
strcat(params + Marker, "Database=");
cout<<endl<<"params = "<<endl;
Marker += strlen("Database=");
strcat(params + Marker, clDatabase);
Marker += strlen(clDatabase) + 1;
strcat(params + Marker, "Server=");
Marker += strlen("Server=");
strcat(params + Marker, clServer);
Marker += strlen(clServer) + 1;
params[Marker]="\0";
Страницы: 1 вся ветка
Текущий архив: 2007.10.28;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.041 c