challenge printfの自作

printf関数を自作してください。
printfの説明は不要だと思います。とりあえずWikiPediaのリンクをはっておきます。

実際にはsprintf関数を作ってください。
注意事項
  • 標準でついているprintf系関数の使用禁止
  • 標準でついているライブラリ以外の使用禁止
  • 引数・返り値等の仕様はできるだけ似せればよい

可変長引数など、言語によっては難しい/不可能な仕様もありますが、いろいろ工夫して本物に近づくようにしてみてください。
1
2
3
4
5
6
7
#include <string.h>

// なにもフォーマットしてない
int mysprintf(char *str, const char *format, ... ){
    strcpy(str, format);
    return strlen(str);
}

Posted feedbacks - Perl

反則にしか見えないが、これでも注意事項の

  • 標準でついているprintf系関数の使用禁止
  • 標準でついているライブラリ以外の使用禁止

を満たしている点に注目。

Dan the Perl Monger

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/usr/local/bin/perl
use strict;
use warnings;
sub mysprintf{
    my $cmd = join(' ', 'printf', @_);
    return `$cmd`
}

if (__FILE__ eq $0){
    print mysprintf("%.6g", exp(1));
}
__END__

Index

Feed

Other

Link

Pathtraq

loading...