Olá e bem-vindo. Nesta aula, quero falar sobre a conversão de strings,
mais algumas funções de string.
É muito comum converter maiúsculas e minúsculas, especificamente.
Se você quiser que sua string seja composta apenas por caracteres
maiúsculos, felizmente, há uma função de duas
letras maiúsculas que converte de minúsculas
em maiúsculas e uma função de duas inferiores que
converte de maiúsculas em minúsculas. Então, minúscula para superior, superior para inferior.
Ambas as funções retornam o caractere convertido ou o
mesmo caractere para caracteres que já estão no caso correto
ou não são conversíveis, como caracteres de pontuação, se você não puder convertê-los.
Portanto, é assim que você pode converter uma string em maiúsculas.
Lembre-se, eles são realmente utilizados caractere
por caractere.
Então, se você tivesse um buffer que fosse um array de
caracteres, você teria que passar por cada elemento no buffer e,
em seguida, fazer um dois acima naquele caractere.
Então, aqui estamos examinando
cada elemento em nosso array de caracteres de buffer e
o estamos passando para os dois métodos superiores.
E isso vai retornar um caractere, é uma caixa alta e vamos atribuí-lo aos nossos buffs em.
Faremos isso até atingirmos o
caractere nulo. Portanto, esta é uma declaração de quatro que tem apenas uma linha.
Isso converte toda a string
em maiúsculas de taxa de buffer, percorrendo a string um caractere por vez.
O loop para quando atinge o caractere de terminação da string, a barra invertida zero.
A conversão do tipo char existe porque dois retornos superiores do tipo int, que
é o valor ASCII, e apenas o converte.
E você faria a mesma coisa se quisesse convertê-lo para minúsculas, muito
simples de usar as funções de conversão de maiúsculas.
Portanto, você pode usar a função two upper em combinação com a função strstr
para descobrir se uma string ocorre em outra ignorando o caso.
Então, vamos dar uma olhada neste exemplo que faz exatamente isso.
Aqui temos duas matrizes de caracteres, texto e substring.
O texto tem o tamanho cem, a substring tem o tamanho quarenta.
Pedimos ao usuário que insira uma string a ser pesquisada, com menos de cem caracteres.
Nós obtemos isso, armazenamos em texto.
E então inserimos a string que eles querem encontrar
usando strstr, então a substring, então eles inserem alguma outra substring.
Em seguida, imprimimos a primeira string e, em seguida, imprimimos a segunda string.
Em seguida, convertemos ambas as strings em maiúsculas.
E então podemos dizer que a segunda string encontrou a primeira string.
Portanto, quando chamamos strstr, ele pode
ignorar maiúsculas e minúsculas. Porque lembre-se, uma das limitações de strstr era que
ele diferenciava maiúsculas de minúsculas.
E agora podemos usar strstr no
texto e substring porque são todos caracteres em maiúsculas.
E, novamente, essa é uma maneira de
descobrir se uma substring está em uma string inteira, ignorando maiúsculas e minúsculas.
Primeiro, apenas convertemos tudo para maiúsculas e agora estamos comparando maiúsculas, e é
isso que este programa faz.
Freqüentemente, você deseja converter strings em números.
Portanto, há funções específicas que começam com um a.
Eles são como atof, atoi, atol e atol.
Atoi muito comum, convertendo uma string em um int.
Então, atof vai converter uma string, e
é como ASCII, ASCIItof. Isso vai converter uma string em um tipo de dados.
Portanto, um atof é um ASCII para um float ou double para um float.
E você pode ter certos valores de retorno. Se não for encontrado ou não puder fazer.
Portanto, às vezes você não pode converter strings em inteiros, especialmente se você tiver uma string que contém apenas palavras.
Normalmente, você usa esta função no exemplo.
Se você tiver uma sequência de caracteres com 98. 4, que pode ser representado como um duplo.
Então você pode fazer uma tentativa sobre isso. Se você tem uma sequência de
caracteres de Jason, não pode convertê-la em um
flutuante em um inteiro, então nada vai acontecer. Portanto, quando você tem cadeias de
caracteres com números, pode convertê-los usando essas funções ASCIIto.
E tudo isso está incluído no arquivo de cabeçalho lib padrão.
Você também verá o oposto
para criar inteiros para strings, você verá coisas como itoa, que é int para ASCII.
Se você tivesse um número 98 e quisesse convertê-lo em uma string, você diria itoa.
Existem também algumas funções mais recentes.
Estes são especificamente para string dobrar
em oposição a atof.
Você pode usar
estes strtod ou strtof ou stringtold.
E cada um deles apenas se converte em long doubles ou floats doubles.
Mas qualquer um deles está bem. Os ASCII são os tradicionais.
Acho que os outros strtods e strtofs foram adicionados em padrões posteriores de c.
Então, aqui está um exemplo de como fazer algumas conversões.
É muito, muito básico. Aqui temos uma matriz de caracteres
str, 3. 5 espaço 2. 5 espaço 1. 26
Temos algumas dicas. E estamos
avançando até pular, se não conseguirmos convertê-lo.
Portanto, dizemos strtod. Passamos nosso endereço
de nosso ptr, nosso ponteiro e passamos nossa
string p que é nossa string,
3. 5 2. 5
Agora você pode dizer por que está passando no str em vez de apenas
no str e você não precisa. Mas aqui queremos realmente verificar se
não houve conversão.
Portanto, como não estamos verificando nenhuma conversão, precisamos examinar os dois indicadores.
Você não pode comparar o ptr com o str porque o str é uma matriz.
Então, vamos usar a peça pstr apenas para representar nosso array de caracteres para que possamos comparar.
E se
compararmos os dois, significa que pstr armazenado
sem conversão, e pronto. Não foi possível converter esse valor.
Caso contrário, se formos capazes de converter o valor, iremos apenas imprimi-lo
e então iremos para a próxima conversão. Pstar vai ser igual ao ponteiro.
Então você pode rodar isso e você pode ver
que vai acabar convertendo tudo no array string em valores
específicos duplos, valores duplos.
Eu geralmente uso atoi, atof, mas qualquer um
deles vai funcionar.
Estas são as funções de conversão. Obrigada.