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.