不用变量实现strlen功能
如题,不准用变量,实现strlen功能,看看都有什么好的方法
???
什么意思啊
我能想到的方法只有内嵌汇编了,一下程序在BC3.1下编译通过:
#include <stdio.h>
int strlen(const char *p)
{
_asm {
xor ax, ax
push bx
mov bx, p
}
_L:
_asm {
cmp BYTE PTR [bx], 00H;
je _RET;
inc ax;
inc bx;
jmp _L;
}
_RET:
_asm {
pop bx;
}
return _AX;
}
int main()
{
printf("%d\n", strlen("Hello"));
return 0;
}
楼上使用递归好方法,不知不觉想到一个不用汇编的方法,而且两句话就可以了,如下:
#include <stdio.h>
int strlen(const char *p)
{
for(_AX = 0; p[_AX] != '\0'; _AX++) ;
return _AX;
}
int main()
{
printf("%d\n", strlen("Hello"));
return 0;
}
顺便问一句,楼上为什么被禁言了?
[此贴子已经被作者于2007-9-5 21:04:09编辑过]