>> DAVID Malan: Supoña que quere escribir un programa que solicita ao usuario
para unha secuencia e despois capitalizar esa cadea.
Ben, imos comezar con algúns familiares código de declarar unha cadea chamada s e
atribuíndolle o retorno valor de getstring.
E imos agora avanzar iterado as personaxes desta cadea.
Ben, como facelo?
Acontece que unha cadea é só un secuencia de caracteres, pero máis
correctamente, unha cadea é un array de caracteres, o que significa que podemos utilizar
notación corchete de índices para unha corda e obter polo individuo
caracteres.
>> Noutras palabras, podemos faga o seguinte.
Para int, i recibe 0, e queda n, dicir, a lonxitude do s, usando
nosa función [? trasfega?]
[? liña,?]
i é inferior a n i + +.
Noutras palabras, con este ciclo, podemos pode iterado sobre as n letras
na cadea s.
E dentro deste loop, vou comprobar si o carácter i-th en s
maior que ou igual a un minúsculas, e o carácter i-th é inferior ou
igual a un c minúscula, entón eu quero proceder a capitalizar esa letra.
Noutras palabras, quero imprimir% c como un espazo reservado e substituto
soporte de i que espazo reservado s.
>> Pero, entón, eu teño converter s soporte i en maiúsculas.
Para iso, podo simplemente restar todo o que é a diferenza entre
minúsculas e un capital de A. Ben, eu Realmente me lembro de que o capital é unha
65 en ASCII, e minúsculas é un 97.
Así, a diferenza é técnicamente 32.
Entón, eu podería só código ríxido de 32 aquí.
Pero eu podería non necesariamente Teña en conta que eses números.
>> E ademais, o que se varían segundo ordenador?
O máis probable é que non son.
Pero o punto é que eu aínda podo xeneralizar esa expresión aritmética
como só o que é a diferenza entre un pequeno e un A maiúsculo
é o que quero para restar fóra de esta letra minúscula particular.
>> Agora, se esta carta especial non é minúscula, eu simplemente
quere imprimir lo.
printf,% c como o meu espazo reservado, s soporte i.
Na parte inferior do programa, imos simplemente imprimir nova liña para que a miña
prompt aparece nun novo liña propia.
>> Imos agora compilar este programa co make capitalize0.
Imos executa-lo con capitalize0.
E imos escribir unha palabra como Ola en todas as letras minúsculas.
Volten OLA en maiúsculas como se esperaba.
Pero imos tratar máis unha proba, esta vez co meu propio nome, D-A-V-I-D, pero con
o primeiro D capitalizar, só no caso errei algo
con ese primeiro carácter.
Enter e D-A-V-I-D en maiúsculas é impreso ben.