<分区>
我正在尝试用 C 编写一个 strlen
函数,但它不起作用。
int strlen(char*string)
{
int length=0;
while(length[string]!='0')
{
++length;
}
free(string);
return length;
}
无论我运行编译器多少次,它都会一直崩溃。我的代码有什么问题?
<分区>
我正在尝试用 C 编写一个 strlen
函数,但它不起作用。
int strlen(char*string)
{
int length=0;
while(length[string]!='0')
{
++length;
}
free(string);
return length;
}
无论我运行编译器多少次,它都会一直崩溃。我的代码有什么问题?
最佳答案
您的 while
循环不应与 '0'
进行比较。
'0'
(ascii) 的值为 48!
字符串不以 48 结尾。
字符串以 0 结尾。
你应该这样做:
while(length[string] != 0)
(关于您代码中其他问题的所有其他答案和评论也都是准确的)
关于c - 为什么我的 strlen 函数保留 "crashing"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075578/