我现在正在上一门Comp Sci
类(class),我的老师在黑板上写的一个例子如下——概念是创建一个字符串
length 函数,它使用指针算法返回具有字符串长度的 size_t
。我理解这个概念,但每次我尝试这个例子时,我的结果都是 0
。
using namespace std;
size_t strlen(const char* str);
int main(int argc, char** argv) {
char test[] = {'h','e','l','l','o','\0'};
cout << strlen(test);
return 0;
}
size_t strlen(const char* str){
int idx = 0;
for( ; *str; str++, idx++){
return(idx);
}
}
如果有人能提供有关问题所在的见解,我将不胜感激。
谢谢! :)
最佳答案
for( ; *str; str++, idx++){
return(idx);
}
将在第一次迭代时返回 idx
。你需要做的是让 for 循环运行,然后返回 idx
。这看起来像:
for( ; *str; str++, idx++){}
return(idx);
您可以用 ;
结束 for 语句,但我发现这很容易被忽略。通过使用一个空的花括号 block ,表明您打算使用一个空的循环体
关于C++使用指针算法查找字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719668/