C++を取得する文字列の長さの関数のいくつかの方法


C/C++streen(str)、str.length()、str.size()、sized(str)は文字列の長さを求めることができます。
このうち、str.length()、str.size()、size of(str)は、string類のオブジェクトを求めるためのメンバー関数である。
streen(str)は、文字配列の長さを求めるために用いられ、そのパラメータはchar*である。
補足知識:文字列の長さの関数sizeof()、streen()、length()、size()を取得します。
C++において長さを計算する関数は、それぞれsizef()、size()、streen()、str.length()の4種類がある。
一.sizeof()とstreen()の違い:
1)sizeofオペレータの結果の種類はsize_である。t,このタイプは、確立された最大のオブジェクトを実現するバイトサイズを許容できることを保証する。
2)sizeofは演算子であり、streenは関数である。
3)sizeofはタイプでパラメータを作ることができます。streenはchar*でパラメータを作るしかなく、'\0''で終わる必要があります。
4)sizeofはコンパイルの時期に計算されます。streenは運行後に計算されます。
5)streenは文字列の具体的な長さ(文字列のみ)を計算し、文字列の終端記号は含まれません。は、文字の個数を返します。sizeofは声明の後に占めるメモリ数(バイトサイズ)を計算します。実際の長さではありません。
例:
1)char*ss=「012345789」;
sizeof(ss)は4で、ssは文字列の定数を指す文字ポインタであり、sizefはポインタが占める空間であり、4である。
sizeof(**ss)は1で、**ssは最初のchar文字で、1です。
2)char ss[]=「012345789」;
sizeof(ss)は11で、ssは配列であり、'0'位置まで計算されるので、(10+1)
sizeof(**s)は1で、**ssは最初の文字です。
3)char ss[100]=「012345789」;
sizeof(ss)は100で、ssはメモリにあらかじめ割り当てられたサイズを表しています。100*1
streen(ss)は10で、その内部実装は'0'までの1つの循環で文字列の長さを計算します。
4)int ss[100]=「012345789」;
sizeof(ss)は400で、ssはメモリにあらかじめ割り当てられたサイズを表しています。100*4
streen(ss)が間違っています。strelenパラメータはchar*だけで、かつ'\0'で終わる必要があります。
5)char[]a='a'、'b'、'c';
sizeof(a)の値は3であるべきです。
char[/b={abc}
sizeof(b)の値は4であるべきです。
6)string str={'a'、'b'、'c'、''0'、'X'};
じゃ、sizeofは5で、streenは3です。
二.stringにおけるlength()とsize()
c+++において、文字列長を取得する場合、size()関数はlength()関数と同じ働きをします。
例えば、string str="wang"
は、str.length()=4です。
この他に、size()関数はまた、vectorタイプの長さを取得することができる。
例えば、vectornum(15,2)
num.size()=15とする。
以上のC++は文字列の長さのいくつかの関数の方式を獲得して、小さい編集がみんなのすべての内容に分かち合うので、みんなに1つの参考をあげることができることを望んで、みんながよけいに私達を支持することをも望みます。