在一些语言(如Java )的错误输出中,显示了一个指针来让程序员知道错误到底出在哪里。
乘坐这个例子到Ideone:
Main.java:12: error: ';' expected
Invalid Java!
^注意插入符号显示无效代码在哪里?
你的挑战是:给定数字N和字符串S,在S中的第N个字符上放置一个指针。
输入:2, "Lorem ipsum, dollar sit amet."
Lorem ipsum, dollar sit amet.
^returned。发布于 2015-06-10 09:52:03
如果只允许一个函数,那么即使c也可以竞争。
(对于记录,2个字节将thx保存到@Cool。Mt的评论出乎意料地消失了。)
多保存1个煤焦的thx @Mig
f(a,c){printf("%s\n%*c",a,c,94);}发布于 2015-06-10 09:14:20
六角山:
66 b8 5e 00 42 38 22 75 fb 66 c7 02 0d 0a 42 42
c6 02 20 e2 fa 89 02 c3它是一个函数(使用MS fastcall约定),它就地更新字符串:
__declspec(naked) void __fastcall carrot(int n, char* s)装配代码:
mov ax, '^'; // ah = 0, al = '^'
mystrlen:
inc edx;
cmp [edx], ah;
jne mystrlen;
mov word ptr [edx], '\r\n'; // append a newline
inc edx;
mymemset:
inc edx;
mov byte ptr [edx], ' ';
loop mymemset;
mov [edx], eax; // append a caret and terminate the string
ret;它在一些地方使用WORD-sized (16位)数据。这在32位代码中有一个惩罚(1字节前缀),但无论如何使代码更小--使用32位数据将两个零字节放入代码中!
最后,它编写了4个字节(eax),而不是2个字节(ax) --这样代码就更小了,在字符串终止后又写了2个字节的垃圾,所以没人注意到它们。
用法:
int main()
{
char s[100] = "Lorem ipsum, euro sit amet.";
carrot(2, s); // credit to Digital Trauma for the name
puts(s);
}发布于 2015-06-10 01:20:03
zp\^*tQd这个解决方案不再起作用了,因为在我链接到的那个之后提交,因为语言名称改变了p,使其具有第一个。在Pyth中,还有其他几种方法可以实现类似的评分,就像zp+*dQ\^一样。
如果字符串需要引号,那么将v添加到代码的开头是可行的。如果必须用逗号分隔,它最多可达10个字节:
eQp\^*dthQhttps://codegolf.stackexchange.com/questions/51471
复制相似问题