2014-03-31 38 views
0

/*编写一个返回字符串(char *)长度的函数,但不包括最终的NULL 字符。它不应使用任何标准库函数。您可以使用算术和 解引用运营商,而不是索引运算符([])*/如何调用此类型的函数

#include "stdafx.h" 
#include<iostream> 

using namespace std; 

int stringLength(const char * str) { 

int length = 0; 

while (*(str + length) != '\0') { 

++length; 

    cout << length; 

return length; 

} 

int _tmain(int argc, _TCHAR* argv[]){ 

stringLength({ 'a', 'b', 'c', '\0' }); 

return 0; 
} 

不知怎的,我觉得我没有正确调用我的函数中的主要功能,但我不知道我是怎么回事应该做到这一点。调用这种类型的函数的正确方法是什么? (很抱歉,如果这是一个愚蠢的问题:我是新来的C++)

+0

'int len = stringLength(“abc”);' – juanchopanza

+0

@juanchopanza谢谢:)! – user3482499

回答

1

像:int l = stringLength("abc");

常数C字符串自动终止零,所以您不需要指定额外的零字符。

+0

解决了这个问题。谢谢你的帮助! – user3482499

1

传递一个字符串。例如

int len = stringLength("abc"); 

FWIW,这将是惯用使用size_t此函数的返回类型。当您尝试使用其他代码时,您将遇到使用int而不是size_t的阻力。

问题中的代码也格式不正确,不能编译。你省略了一个右大括号。支付这种类型的细节是正确的。

+0

谢谢:)。我会记住这一点。 – user3482499