2014-03-31 55 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