LINUX.ORG.RU

История изменений

Исправление saahriktu, (текущая версия) :

С 1-м апреля, ага. А я тут допилил пару реализаций утилитой.

// v0.7 by Saahriktu
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
        long int a2, al;
        char *buf;
        if (argc < 4) {
                printf("usage: leftpad string width char\n");
                return 1;
        }
        a2 = atol(argv[2]);
        al = a2 - strlen(argv[1]);
        if (al < 1) {
                printf("%s\n", argv[1]);
                return 0;
        }
        buf = (char *)malloc(a2 + 1);
        if (buf == NULL)
                return 1;
        memset(buf, argv[3][0], al);
        buf[al] = '\0';
        printf("%s\n", strcat(buf, argv[1]));
        free(buf);
        return 0;
}
#!/usr/bin/python3

import sys

if len(sys.argv) < 4:
    print("usage: leftpad.py string width char\n")
    sys.exit()

print(sys.argv[1].rjust(int(sys.argv[2]), sys.argv[3][0]))

Исходная версия saahriktu, :

С 1-м апреля, ага. А я тут допилил пару реализаций утилитой.

// v0.6 by Saahriktu
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
        long int a2, al;
        char *buf;
        if (argc < 4) {
                printf("usage: leftpad string width char\n");
                return 1;
        }
        a2 = atol(argv[2]);
        al = a2 - strlen(argv[1]);
        if (al < 1) {
                printf("%s\n", argv[1]);
                return 0;
        }
        buf = (char *)malloc((a2 + 1));
        if (buf == NULL)
                return 1;
        memset(buf, argv[3][0], al);
        buf[al] = '\0';
        printf("%s\n", strcat(buf, argv[1]));
        free(buf);
        return 0;
}
#!/usr/bin/python3

import sys

if len(sys.argv) < 4:
    print("usage: leftpad.py string width char\n")
    sys.exit()

print(sys.argv[1].rjust(int(sys.argv[2]), sys.argv[3][0]))