c++文字列と整数の相互変換[整理]
3315 ワード
1.ライブラリ関数による変換:atoi,stol,strtoi,itoa
atoi:
atoi()関数はc標準ライブラリに属し、ヘッダファイルを追加する.
atoi()関数プロトタイプ str--整数に変換する文字列 関数の説明:パラメータstrが指す文字列を整数(タイプint型)に変換する.有効な変換が実行されない場合は、ゼロ値を返します.
strtol:
strtol()関数はc標準ライブラリに属し、ヘッダファイルを追加する.
strtol()関数プロトタイプ str--長い整数に変換する文字列 endptr--char*のタイプのオブジェクトへの参照です.その値は、nullptr のnullptr に設定できる関数によってstrの数値に設定された次の文字(数値の後ろにある文字列を保持)です. base--基本数は、2と36(含む)の間にある必要があります.または、特殊な値0である必要があります.進数(10,2,16,8) が理解できます.
関数の説明:パラメータstrが指す文字列を所与のbaseに従って長い整数(long int型のタイプ)に変換し、有効な変換が実行されなければゼロ値を返す.
注意:atoiとstrtolはすべてcの中の関数で、それらのパラメータはすべてconst char*なので、stringを使う時、c_を調整しなければなりませんstr()メソッドは、char*の文字列に変換します.
stoi:
stoiはstringライブラリの関数です.ヘッダファイルを追加する必要があります.
stoi関数プロトタイプ str--プログラム全体を変換するstringオブジェクト idex--数値の後ろの最初の文字のアドレスはnullptr です. base--進数、デフォルトは10 です.
関数の説明:strオブジェクトを整数(int型)に変換します.変換に成功すると、変換後の整数が戻る.変換に失敗すると異常が放出されるので、使用時に必要な異常処理があるはずです.
itoa:
itoa()関数はc標準ライブラリに属し、ヘッダファイルを追加する. value--変換したいデータ string--ターゲット文字列のアドレス redix--変換後の進数、例えば10,16などの 関数の説明:整数を文字列に変換し、この文字列を指すポインタを返します.
2.フォーマット関数の利用:sprintf,sscanf
sprintf:
ヘッダファイルを追加
関数のプロトタイプ: buffer:char型ポインタ、書き込む文字列のバッファ を指す format:フォーマット文字列 [argument]...:任意のタイプのデータ 関数の説明:フォーマットされたデータを文字列バッファに書き込む.bufferに書き込む文字数を返し、エラーが発生すると-1を返す.
例
sscanf:
ヘッダファイルを追加
関数のプロトタイプ: buffer:char型ポインタ、書き込む文字列のバッファ を指す format:フォーマット文字列 [argument]...:任意のタイプのデータ 関数の説明:フォーマットされた文字列のデータを読み込みます.sscanfはscanfと同様に入力に用いられるが,後者はキーボード(stdin)を入力源とし,前者は固定文字列を入力源とする.成功するとパラメータ数を返し、失敗すると-1を返す.
例
3.stringstreamクラスの利用
ヘッダファイルを追加
文字列から整数:
整数から文字列:
注意:stringstreamはメモリをアクティブに解放しません.繰り返し使用するにはstreamなどの明確なキャッシュが必要です.str(「」)またはstream.clear().
atoi:
atoi()関数はc標準ライブラリに属し、ヘッダファイルを追加する.
atoi()関数プロトタイプ
int atoi(const char *str)
strtol:
strtol()関数はc標準ライブラリに属し、ヘッダファイルを追加する.
strtol()関数プロトタイプ
long int strtol(const char *str, char **endptr, int base)
関数の説明:パラメータstrが指す文字列を所与のbaseに従って長い整数(long int型のタイプ)に変換し、有効な変換が実行されなければゼロ値を返す.
注意:atoiとstrtolはすべてcの中の関数で、それらのパラメータはすべてconst char*なので、stringを使う時、c_を調整しなければなりませんstr()メソッドは、char*の文字列に変換します.
stoi:
stoiはstringライブラリの関数です.ヘッダファイルを追加する必要があります.
stoi関数プロトタイプ
int stoi (const string& str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);
関数の説明:strオブジェクトを整数(int型)に変換します.変換に成功すると、変換後の整数が戻る.変換に失敗すると異常が放出されるので、使用時に必要な異常処理があるはずです.
itoa:
itoa()関数はc標準ライブラリに属し、ヘッダファイルを追加する.
char *itoa( int value, char *string,int radix);
2.フォーマット関数の利用:sprintf,sscanf
sprintf:
ヘッダファイルを追加
関数のプロトタイプ:
int sprintf( char *buffer, const char *format, [ argument] … )
例
#include
int main( void )
{
char buffer[200], s[] = "student", ch = 'l';
int i = 35;
// buffer
sprintf( buffer, " String: %s
", s );
sprintf( buffer, " Character: %c
", ch);
sprintf( buffer, " Integer: %d
", i );
return 0;
}
sscanf:
ヘッダファイルを追加
関数のプロトタイプ:
int sscanf( const char *buffer, const char *format, [ argument ]...);
例
#include
int main( void )
{
char buffer[200], s[] = "student", ch = 'l';
int i = 35;
// buffer
sprintf( buffer, " String: %s
", s );
sprintf( buffer, " Character: %c
", &ch);
sprintf( buffer, " Integer: %d
", &i );
return 0;
}
3.stringstreamクラスの利用
ヘッダファイルを追加
文字列から整数:
stringstream sstr(str);
int x;
sstr >> x;( sstr )
整数から文字列:
stringstream sstr;
int x;
sstr << x;
string str = sstr.str();
注意:stringstreamはメモリをアクティブに解放しません.繰り返し使用するにはstreamなどの明確なキャッシュが必要です.str(「」)またはstream.clear().