Аналог функций LeftStr и RightStr Паскаля в Си

Рейтинг: 0Ответов: 1Опубликовано: 07.03.2015

Здравствуйте!

Мне нужно переписать на си программу на паскале. В ней используются функции:

function LeftStr(s: string; count: integer): string; 
        Возвращает первые count символов строки s

function RightStr(s: string; count: integer): string; 
        Возвращает последние count символов строки s

Прошу помочь найти их аналоги в Си.

Ответы

▲ 1Принят

Можно попробовать как-нибудь так

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

#define MIN(a,b) (((a)<(b))?(a):(b))

char *left_str(const char *src, size_t len){
    return strndup(src, len);
}

char *right_str(const char *src, size_t len)
{
    size_t str_len=strlen(src);
    len=MIN(len, str_len);
    char *dst=(char*)malloc(len+1);
    strcpy(dst, src+str_len-len);
    return dst;
}

int main()
{
    printf("%s\n", left_str("12345", 2));
    printf("%s %s\n", right_str("12345", 2), right_str("12345", 8));
}