Este artigo demonstra como converter ponto em vírgula ou vírgula em ponto de uma informação do tipo char.
Será apresentada também neste artigo como converter uma string para char, além de calcular o tamanho da AnsiString.
O processo é feito através de uma estrutura de repetição, será utilizada a estrutura "for" para este exemplo. Onde se varre a variável char que recebeu a informação que deseja ser manipulada. Segue o sintaxe abaixo.
for(int y=0;y<tamanho da string;y++)
{
if (variável_char[y]== '.')
{
variável_char[y]=',';
y=tamanho da string;
}
}
Onde:
- tamanho da string, é uma variável do tipo int.
- variável_char, é uma variável do tipo char com tamanho definido .
No exemplo abaixo, se pega a informação de um edit. Converter de ansistring para char. e calcula o tamanho da string.
Então se faz a operação de operação de busca do ponto em uma posição dentro da char, e substitui por vírgula. Então joga o valor da variável char para um label já convertido.
converte=Edit1->Text; //Transfere o que está escrito em Edit1 para AnsiString converte.
strcpy(palavra,converte.c_str()); //método para converter AnsiString em char.
TamaString = strlen(palavra); //Calcula o tamanho da string
// --- transformando ponto em virgula
for(int y=0;y<TamaString;y++)
{
if (palavra[y]== '.')
{
palavra[y]=',';
}
}
//-------------------------------------
Label1->Caption=palavra; // joga o palavra para o label.
A mesma estrutura de varrer uma variável tipo char pode ser utilizada para outros casos, como por exemplo contar a quantidade vezes que determinada letra aparece em uma palavra.
// --- contando quantas vezes aparece a letra "a"
for(int y=0;y<TamaString;y++)
{
if (palavra[y]== 'a')
{
qtde++;
}
}
Label1->Caption="A letra ""a"" apareceu "+IntToStr(qtde)+" vezes!";
Muitos outros casos onde se precisa explorar uma informação tipo char pode ser feito utilizando esta mesma estrutura, basta analisar caso a caso qual o melhor algoritmo a ser seguido.