"Eu tenho alguns livros no valor de US $ 14.25 e outros no valor de US $ 34.87."
Agora os sub-strings “14.25 "e" 34.87 ”são literais de cordas e não números. Se você tiver o código,
"14.25 " +" 34.87 "
Em C ++, você não acabará com 49.12. De fato, o compilador deve emitir uma mensagem de erro. Para ter o resultado, 49.12, “14.25 ”deve ser convertido em um número de duplo ou flutuação e“ 34.87 ”deve ser convertido em um número de dupla ou flutuação.
O título deste tutorial é “string c ++ para dupla conversão”. Seu objetivo é converter string para dobrar; ou para fazer todos os seguintes, que estão relacionados?
Este tutorial explica todas essas conversões e mais. O que está sendo convertido é um objeto em forma de string. A classe C ++ String tem funções para fazer isso. Para usar essas funções, a classe String deve ser incluída no programa.
Conteúdo do artigo
String para conversão inteira
O programa a seguir faz isso:
"20" para int + "30" para int = 50 como int
A sintaxe de conversão simplificada para uso é:
Stoi (STR)
onde stoi significa string-to-integer. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "20";
char str2 [] = "30";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
String para conversão inteira longa
O programa a seguir faz isso:
"20" para long int + "30" para long int = 50 como Int Long
A sintaxe de conversão simplificada para uso é:
Stol (STR)
onde stol significa string a longo-inteiro. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "20";
char str2 [] = "30";
long int num1 = stol (str1);
long int num2 = stol (str2);
Long int resultado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
String para conversão inteira longa não assinada
O programa a seguir faz isso:
"20" para não assinado Long Int + "30" para não assinar Long Int = 50 como Long Int não assinado
A sintaxe de conversão simplificada para uso é:
STOUL (STR)
Onde STOUL significa string-a-insignada. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "20";
char str2 [] = "30";
não assinado long int num1 = STOUL (STR1);
não assinado long int num2 = STOUL (STR2);
Long int resultado não assinado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
String para conversão inteira longa não assinada
O programa a seguir faz isso:
"20" a não assinado long, long Int + "30" para não assinar longos int = 50 como não assinado Long, Long Int
A sintaxe de conversão simplificada para uso é:
STOUNL (STR)
Onde Stol significa string-a-insignada por um inteiro de longa duração. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "20";
char str2 [] = "30";
não assinado long long int num1 = sToull (str1);
não assinado long long int num2 = sToull (STR2);
Longo Int Long Int não assinado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
String para flutuar conversão
O programa a seguir faz isso:
"14.25 "para flutuar +" 34.87 "para flutuar = 49.12 como flutuação
A sintaxe de conversão simplificada para uso é:
Stof (STR)
onde stof significa string a flutuar. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
float num1 = stof (str1);
float num2 = stof (str2);
resultado float = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
String para dupla conversão
O programa a seguir faz isso:
"14.25 "para dobrar +" 34.87 "para dobrar = 49.12 como duplo
A sintaxe de conversão simplificada para uso é:
Stod (STR)
onde stof significa string a flutuar. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
duplo num1 = stod (str1);
duplo num2 = stod (str2);
resultado duplo = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
String para longa conversão dupla
O programa a seguir faz isso:
"14.25 "a longo duplo +" 34.87 "a longo dobro = 49.12 como duplo
A sintaxe de conversão simplificada para uso é:
Stold (STR)
onde stof significa string a flutuar. O programa é:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
longa dupla num1 = Stold (str1);
longa dupla num2 = Stold (str2);
resultado duplo longo = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
Sintaxe completa
String para inteiro
A sintaxe completa para converter uma string para int é:
int stoi (const string & str, size_t* idx = nullptr, int base = 10)
O segundo argumento pode ser permitido como nullptr. O padrão para o terceiro argumento é a base 10. Pode ser alterado para alguma outra base, como 16.
O programa a seguir faz isso:
"A" para int-Base-16 + "B" para int-Base-16 = 21 como int-Base-10
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "A";
char str2 [] = "b";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int resultado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 21.
As outras sintaxes são explicadas da mesma forma.
Espaço em branco
Os espaços de branco são ", '\ n', '\ r', '\ f', '\ t', '\ v'. Um ou mais deles podem estar na frente ou depois de um número em uma string. Durante a conversão, os espaços em branco são removidos.
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para int:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultado = num1 + num2;
cout << result << endl;
retornar 0;
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para long Int:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
long int num1 = stol (str1);
long int num2 = stol (str2);
Long int resultado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para não assinada INT:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
não assinado long int num1 = STOUL (STR1);
não assinado long int num2 = STOUL (STR2);
Long int resultado não assinado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para não assinada longa int:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
não assinado long long int num1 = sToull (str1);
não assinado long long int num2 = sToull (STR2);
Longo Int Long Int não assinado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 50.
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para float:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
float num1 = stof (str1);
float num2 = stof (str2);
resultado float = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para o dobro:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
duplo num1 = stod (str1);
duplo num2 = stod (str2);
resultado duplo = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para longa dupla:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
longa dupla num1 = Stold (str1);
longa dupla num2 = Stold (str2);
resultado duplo longo = num1 + num2;
cout << result << endl;
retornar 0;
A saída é:
49.12
O programa a seguir ilustra como os espaços em branco são removidos na conversão de string para int, na base 16:
#incluir
#incluir
usando namespace std;
int main ()
char str1 [] = "\ n a \ n";
char str2 [] = "\ t b \ t";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int resultado = num1 + num2;
cout << result << endl;
retornar 0;
A saída é 21.
Conclusão
C ++ tem funções para converter strings em números. Na conversão, os espaços em branco são ignorados. Se a string tiver um personagem que não seja um dígito ou espaço em branco, o resultado não é confiável. As funções estão na biblioteca de cordas e são: Stoi (), Stol (), Starl (), Stoll (), Stoll (), Stof (), Stod () e Stold ().