在用递归写strlen函数时,感觉道理很简单(判断一下字符串最后一个字符'\0')这个程序就出了
但是在我的程序中却出了错,我调试不出来错误,程序很短,肉眼看了好多遍,最后更是在网上找到代码,一步一步找.
这就是我的代码:(错误代码)
#include <stdio.h>
#include <stdlib.h>
int Strlen( char* str)
{
if (*str=='/0')
{
return 0;
}
return 1 + Strlen(str+1);
}
int main()
{
char* p = "abcdef";
printf("%d\n", Strlen(p));
system("pause");
return 0;
}
很无奈的最后发现我把 '\0'写成了'/0'.
'\0'是字符串中的最后一个隐藏字符,‘它在字符串中标志着结尾,系统读这个字符串就会一直往后读,读到'\0'位置 .