0

このプログラムは、サブトラカ警告メッセージによって文字列の長さをカウントします

-\

stringLength関数がsize_tを返します。これは、フォーマット指定子に誤りがありますか、それとも値を返す方法ですか?

#include <stdio.h>
#include <stdlib.h>

size_t stringLength(const char *str);

int main(void) 
{


    return 0;
}

size_t stringLength(const char *str)
{
    const char *strCopy = str;

    while (*str)              
    {
        str++;                
    }

}
4

1 に答える 1

1

あなたが抱えている問題はoperator-()、符号なしではなく符号付きの値を返すことです。ルーチンでは、値が常に正になることがわかっているので、にキャストを追加し size_tて、符号が間違っていることを心配する必要はありません。

return static_cast<size_t>(str - strCopy); //C++

また

return (size_t)(str - strCopy); //C
于 2012-08-07T22:22:07.113 に答える