Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.03;
Скачать: CL | DM;

Вниз

Помогите перевести с делфи на си   Найти похожие ветки 

 
Steep ©   (2007-05-10 11:21) [0]

function x(s:string; int a; int len);
begin
Result:=copy(s,a,len);
end;


 
DVM ©   (2007-05-10 11:23) [1]

в C нет прямо такого же типа string чем заменять?


 
DVM ©   (2007-05-10 11:24) [2]

к тому же эта функция вообще не на делфи, а на какой то помеси делфи и c


 
Steep ©   (2007-05-10 11:29) [3]

ну это я пытался переводить :)

ну строка как массив символов  тогда...

Вобщем надоиз строки s (массив типа char) копировать в строку s1 подстроку из s с 1 по 5 символ например?


 
DVM ©   (2007-05-10 11:30) [4]


> Steep ©   (10.05.07 11:29) [3]

ну так ты же все уже сам рассказал :)


 
Steep ©   (2007-05-10 11:36) [5]

тык я синтаксиса не знаю.....


 
X9 ©   (2007-05-10 11:43) [6]

char * x(char *s, int a, in len)
{
   char * s_;
   return strncpy(s_, s+a, len);
}

Не помню порядок параметров функции strncpy, возможно, есть ошибка.
Локальная переменная нужна для помещения результата, т.к. один из параметров ф-ция strcpy требует этого. М.б. можно поставить вместо этого параметра NULL, но я не пробовали.

P.S. Си учу только на лабораторных работах :)


 
Ricko ©   (2007-05-10 11:44) [7]

Мой вариант:
char *strseq(char *src, int a, int count)
{
   char *ret;

   ret = malloc(count);
   if (!ret) {
       return NULL;
   }
   
   return strncpy(ret, (src+a), count);
}


 
Steep ©   (2007-05-10 11:47) [8]

Спасибо вам большое!


 
DVM ©   (2007-05-10 11:52) [9]

только все это эквиваленты скорее следующего

function strseq(src: pchar;  a: integer;  count: integer): pchar;
var
 Ret: PChar;
begin
 GetMem(ret, count);
 result := StrLCopy(ret, src + a, count);
end;


 
X9 ©   (2007-05-10 11:53) [10]

> [9] DVM ©   (10.05.07 11:52)

Ну нет в Си строк, нет...


 
{RASkov} ©   (2007-05-10 12:01) [11]

> [10] X9 ©   (10.05.07 11:53)
> Ну нет в Си строк, нет...

Бедные.... как они там без них.... :)


 
Карелин Артем ©   (2007-05-10 12:04) [12]


> {RASkov} ©   (10.05.07 12:01) [11]

Массив char иногда вместо них используют.


 
sniknik ©   (2007-05-10 12:08) [13]

> Бедные.... как они там без них.... :)
есть класс, практически аналог, bsrt вроде бы называется... (есть и другие но там отличий больше, насколько помню)


 
X9 ©   (2007-05-10 12:30) [14]

> [13] sniknik ©   (10.05.07 12:08)

Я имел в виду чистый C.


 
Belorus ©   (2007-05-10 16:34) [15]

>
> Массив char иногда вместо них используют.


Серьёзно ?


 
Anatoly Podgoretsky ©   (2007-05-10 18:58) [16]

> Belorus  (10.05.2007 16:34:15)  [15]

А что еще им остается делать



Страницы: 1 вся ветка

Текущий архив: 2007.06.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
15-1178569913
Германн
2007-05-08 00:31
2007.06.03
С жиру бесятся (Каждый сходит с ума по своему :)


15-1178437370
iZEN
2007-05-06 11:42
2007.06.03
Microsoft признает провал Windows Vista


1-1176136783
GreyWolf
2007-04-09 20:39
2007.06.03
Build number в Delphi


15-1178258375
Cyrax
2007-05-04 09:59
2007.06.03
cdr-viewer ы и cdr-converter ы...


15-1178470182
ArtemESC
2007-05-06 20:49
2007.06.03
Диски FAT в OpenSuse 10.2