はまず、ここではCのコードです:Cで関数内の文字列のサイズを調べる方法は?私が説明する前に
#include <stdio.h>
void printSize(char* str);
int main()
{
char a[100] = "StackOverflow";
printSize(a);
return 0;
}
void printSize(char* str)
{
int n = sizeof(str)/sizeof(char);
printf("%d" ,n);
}
あなたはすでに100は、私が割り当てられているサイズであるように、私は「100」の値を印刷するには、私の機能を取得しようとしています見ることができるように私のchar
アレイa
に。しかし私は私の答えとして8を得ています。今私はなぜポインタのサイズを印刷しているので、私はここで8になっているのか知っています。だから私の質問は、私は "100"の値を印刷するためにこのメソッドを使用することができない場合、私はa
に割り当てられたメモリを関数内から見つけることができますか?あなたがstrlen
機能を使用し、文字列の長さを取得するには
おかげ
簡単な方法では見つかりません。通常は、配列のサイズを示す 'int size'という関数に別のパラメータを追加します。 – atturri
[Cでの文字配列の長さの検索](0120-18753) –
基本的にC言語で行う方法はありませんか? – theprogrammer094