文字列配列のサイズを動的に取得するにはどうすればよいですか? 例えば:
string names[5] = {"John","Smith","Noob"};
そして、どういうわけか、2のサイズを取得する必要があります
どうやってやるの?ベクトルやループを使わずに?
文字列配列のサイズを動的に取得するにはどうすればよいですか? 例えば:
string names[5] = {"John","Smith","Noob"};
そして、どういうわけか、2のサイズを取得する必要があります
どうやってやるの?ベクトルやループを使わずに?
配列サイズはまだ5です。
値を指定しなかった要素は、デフォルトで初期化されます""
。しかし、彼らはまだそこにいて、すべてです。
さて、質問に答えるために、配列のサイズを取得する方法は次のとおりです。
int arr[17];
int arrSize = sizeof(arr) / sizeof(int);
しかし、はい、あなたの場合、5 として初期化されているので、5 です。
配列のサイズをイニシャライザの数で決定する場合は、次のようにします。
string names[] = {"John","Smith","Noob"};
string name[]
は不完全な配列型であり、言語はそれを完成させるために必要な正しいサイズを初期化子から計算します。この場合、配列のサイズは 3 になります。
ただし、生の配列はあまり友好的ではないため、可能であればそれらを避け、この場合はベクトルを使用することをお勧めします。
std::vector<std::string> names {"John","Smith","Noob"};
ベクトルを初期化するこの方法を使用するには、コンパイラが C++11 をサポートする必要があります。
文字列配列から初期化された要素の数を取得し、すべての要素をループしてそれらを intro char 配列に変換する必要があります
そもそも char* から始めてみませんか?
char const *names[] = {"John","Smith","Noob"};