C++文字列と数字の相互変換方法のまとめ
8641 ワード
C++文字列と数字の相互変換方法のまとめ
一、sscanfとsprintf
sscanf(ソース文字列、フォーマット、宛先変数)文字列配列変換数値理解string+scanf sprintf(宛先文字列、フォーマット、ソース変数)数値変換文字列配列理解string+printfたとえば、
出力は
出力は
二、atoi、stoi文字列回転数
atoi、stoiはいずれもcstringヘッダファイルの下の文字処理関数であり、文字列をデジタルatoi(const*char)に変換する役割を果たす.パラメータがstringタイプであれば、必ずc_str()メソッドは、(標準c文字列配列を指すポインタを返す)stoi(const*string)関数名string to integer略語を処理し、atoi()は範囲検査を行わない.一方stoi()は範囲検査を行い、デフォルトはintであり、範囲を超えた場合はエラーを報告する
三、数値回転文字列
●itoa():整数値を文字列に変換します.●ltoa():ロング整数値を文字列に変換します.●ultoa():符号なしロング整数値を文字列に変換します.●gcvt():浮動小数点型数を文字列に変換し、四捨五入する.●ecvt():二重精度浮動小数点型値を文字列に変換し、変換結果に10進数小数点は含まれません.●fcvt():ビット数を変換精度として指定し、残りはecvt()とする.
一、sscanfとsprintf
sscanf(ソース文字列、フォーマット、宛先変数)文字列配列変換数値理解string+scanf sprintf(宛先文字列、フォーマット、ソース変数)数値変換文字列配列理解string+printfたとえば、
#include <cstdio>
int main(){
int n;
char str[10] = "123";
sscanf(str,"%d",&n); //
printf("%d",n);
}
出力は
123
#include <cstdio>
int main(){
int n = 1234;
char str[10];
sprintf(str,"%d",n); //
printf("%s",str);
}
出力は
1234
二、atoi、stoi文字列回転数
atoi、stoiはいずれもcstringヘッダファイルの下の文字処理関数であり、文字列をデジタルatoi(const*char)に変換する役割を果たす.パラメータがstringタイプであれば、必ずc_str()メソッドは、(標準c文字列配列を指すポインタを返す)stoi(const*string)関数名string to integer略語を処理し、atoi()は範囲検査を行わない.一方stoi()は範囲検査を行い、デフォルトはintであり、範囲を超えた場合はエラーを報告する
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1 = "2147482", s2 = "-214748";
string s3 = "214748666666663", s4 = "-21474836488";
cout << stoi(s1) << endl;
cout << stoi(s2) << endl;
cout << atoi(s3.c_str()) << endl;
cout << atoi(s4.c_str()) << endl;
return 0;
}
2147482
-214748
301866663
-8
三、数値回転文字列
●itoa():整数値を文字列に変換します.●ltoa():ロング整数値を文字列に変換します.●ultoa():符号なしロング整数値を文字列に変換します.●gcvt():浮動小数点型数を文字列に変換し、四捨五入する.●ecvt():二重精度浮動小数点型値を文字列に変換し、変換結果に10進数小数点は含まれません.●fcvt():ビット数を変換精度として指定し、残りはecvt()とする.
# include <stdio.h>
# include <stdlib.h>
int main ()
{
int num_int = 435;
double num_double = 435.10f;
char str_int[30];
char str_double[30];
itoa(num_int, str_int, 10); // num_int str_int,10 10
gcvt(num_double, 8, str_double); //8
printf("str_int: %s
", str_int);
printf("str_double: %s
", str_double);
return 0;
}