Noções básicas de Funções para manipulação de caracteres para programação C
No coração de qualquer cadeia de texto é a variável de char. Com a programação C, é um buraco quadrado único, no qual você encher um valor de 0 a 255. Esse valor é representado visualmente como um personagem.
Básico das Ctypes
A linguagem C tem um bando de funções projetadas para testar ou manipular caracteres individuais. As funções são definidas no arquivo de cabeçalho ctype.h. A maioria dos programadores, portanto, referem-se às funções que o funções Ctype, onde CTYPE é pronunciado # 147-ver-tipo, # 148- e não # 147 Stoor-ye, # 148- que como um russo nativo iria lê-lo.
Para usar as funções Ctype, o arquivo de cabeçalho ctype.h deve ser incluído no seu código-fonte:
#incluir
funções Ctype se enquadram em duas categorias: testes e manipulação.
Função | Retorna verdadeiro quando CH é |
---|---|
isalnum (CH) | A letra do alfabeto (maiúsculo ou minúsculo) ou um número |
isalpha (CH) | Uma carta maiúsculo ou minúsculo do alfabeto |
isascii (CH) | Um valor ASCII na gama de 0 a 127 |
ISBLANK (CH) | A tabulação ou espaço ou outro caractere em branco |
iscntrl (CH) | Um personagem código de controle, valores de 0 a 31 e 127 |
isdigit (CH) | Um personagem de 0 a 9 |
isgraph (CH) | Qualquer carácter de impressão, exceto para o espaço |
ishexnumber (CH) | Qualquer dígito hexadecimal, de 0 a 9 ou A a F (orlowercase maiúsculas) |
islower (CH) | A letra minúscula do alfabeto, uma para z |
ISNUMBER (CH) | Vejo isdigit () |
isprint (CH) | Qualquer personagem que pode ser exibido, incluindo o espaço |
ispunct (CH) | Um símbolo de pontuação |
isspace (CH) | Um personagem, espaço, guia, alimentação de formulário, ou um espaço em branco Digite, por exemplo |
isupper (CH) | Uma letra maiúscula do alfabeto, UMA para Z |
isxdigit (CH) | Vejo ishexnumber () |
Função | retorna |
---|---|
ToASCII (CH) | O valor do código ASCII de ch, na gama de 0 a 127 |
abaixar(CH) | A minúscula do caráter CH |
toupper (CH) | A maiúsculas de carácter CH |
De um modo geral, funções de teste começar é, e funções de conversão de começar para.
Cada função CTYPE aceita um valor int como argumento, representado pela variável CH nas Tabelas 13-1 e 13-2. Estes não são funções de char!
Cada função CTYPE retorna um valor int. Para as funções que retornam valores VERDADEIRO ou FALSO lógicos, FALSO é 0, e VERDADEIRO é um valor diferente de zero.
Holt para testar caracteres
As funções Ctype vêm em mais útil quando o teste de entrada, determinando que a informação adequada foi digitado, ou puxar as informações necessárias para fora do lixo. O código no texto de estatísticas ilustra como um programa pode digitalizar texto, arrancar certos atributos e, em seguida, exibir um resumo das informações.
estatísticas de texto
#include #include int main () {frase char [] = "Quando, no curso dos acontecimentos humanos, se torna necessário a um povo dissolver os laços políticos que o ligavam a outro, e assumir, entre os poderes da terra , a estação separada e igual a que as leis da natureza e de Deus da natureza a autorizam, um respeito decente pelas opiniões da humanidade exige que se declarem as causas que os levam a essa separação. "- int index, alfa, em branco, punct-alfa = blank = punct = 0 - / * reunir dados * / index = 0-while(phrase[index]){if(isalpha(phrase[index]))alpha++-if(isblank(phrase[index]))blank++-if(ispunct(phrase[index]))punct++-index++-}/* resultados de impressão * / printf ( ""% s " n", frase) -puts ( "Estatísticas:") - printf ( "% d caracteres alfabéticos n", alpha) -printf ( "% d n blanks ", em branco) -printf (" símbolos de pontuação% d n ", punct) -Retornar (0) -}
Estatísticas de texto pode parecer muito tempo, mas não é- a frase [] string declarou na Linha 6 pode ser qualquer coisa que você gosta - qualquer texto, um poema, ou um limerick imunda. Ele deve ser longa o suficiente para ter um punhado de personagens interessantes. Note-se que embora o texto quebra e travessões neste texto, você deve digitar apenas uma longa linha de texto em seu código.
Este código também faz um inicialização quadrilha:
alfa = blank = punct = 0-
Porque cada uma dessas variáveis devem ser definidas para 0, você usa vários operadores de atribuição na mesma linha e realizar a tarefa em uma só penada.
A carne de operação do programa ocorre começando com o comentário de dados se reunir. Um loop while percorre cada caractere na string. A condição para o loop while é a frase [índice]. Essa avaliação é verdadeiro para cada personagem na matriz, exceto para o último, o caractere nulo, que avalia como FALSE e pára o loop.
funções ctype são utilizados em se declarações como cada personagem é avaliada em linhas 17, 19 e 21. Em testes de if-else, cada personagem deve ser verificado. Quando uma correspondência positiva ou TRUE é encontrado, uma variável de contador é incrementado.
Exercício 1: Digite o código-fonte do texto de estatísticas em seu editor. Construir e executar.
Exercício 2: Modificar o código fonte a partir de estatísticas de texto para que os testes também são feitos para a contagem de letras maiúsculas e minúsculas. Exibir os resultados também.
Exercício 3: Adicione código para a sua solução do Exercício 2, para que a contagem final de todos os caracteres no texto (comprimento do texto) é exibido como a estatística final.
Como alterar caracteres
As funções Ctype que começam com a são usados para converter caracteres. A mais comum destas funções são toupper () e tolower (), que vêm a calhar quando o teste de entrada. Como um exemplo, considere o problema yorn típico, ilustrado em um Yorn problema.
UM PROBLEMA YORN
#include #include int main () {char resposta-printf ( "Você gostaria de explodir a lua?") -scanf ( "% c", resposta) -atender = toupper (resposta) -se (resposta == ' Y ') puts ( "BOOM!") - elseputs ( "A lua é seguro") - retorno (0) -}
Yorn é programador falar por um sim ou nenhuma situação: O usuário é solicitado a digitar Y para Sim ou N para Não Será que a pessoa tem que digitar Y ou y? Ou eles podem digitar N ou n, ou se qualquer tecla não-Y ser considerada Não?
Em A Yorn Problema, Linha 10 usa toupper () para converter a entrada de caracteres em maiúsculas. Dessa forma, apenas um único se a condição é necessária para testar a Y ou entrada y.
Exercício 4: Criar um novo projeto usando o código-fonte mostrado em A Yorn problema. Construir e executar.
Exercício 5: Modificar o código fonte para que o texto é exibido quando o usuário digita nem Y nem N.
Exercício 6: Escreva um programa que muda todas as letras maiúsculas em uma sequência de texto para minúsculas e muda as letras minúsculas para maiúsculas. Exibir os resultados.