Programar em C++/Manipulando strings: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 327:
=== Convertendo C-string e número ===
 
Na bibliotecaNo ficheiro (arquivo) cabeçalho da biblioteca cstdlib (c+std+lib) temos várias funções de conversão de números em tipologia numérica.
 
 
'''atoi''' (acrónimoacrônimo para "ASCII to integer") recebe um argumento – c-string) e retorna o inteiro que a c-string representa. Não verifica se o argumento pode ser convertido:
 
<source lang=cpp>
int num = atoi("7654");
</source>
 
Programa exemplo:
 
<source lang=cpp>
Linha 350 ⟶ 355:
{
if (!isdigit(input[x]) && input[x] != '-')
return false1;
}
else
{
if (!isdigit(input[x]))
return false2;
}
}
num = atoi(input);
cout << num;
 
#ifdef _MSC_VER
system ("pause");
#endif
 
return 0;
}
</source>
 
Neste exemplo temos a vantagem de o utilizadousuário inserir um digitodígito para o array de caracteres em vez de um intinteiro, para evitar um "run-time error" ou "garbage data" que aconteceria se oa imputentrada fosse não numériconumérica.
Depois o array é verificado apara ver se representa um número. Se o numero for negativo tem o “–“.
 
Ao estilo c++ temos a função atol ou atof. Uma alternativa útil é atribuir o valor da string ao array de caracteres usando a função c_str e depois usar o ataoi, atol ou atof