DAVID MALAN: Suponha que gostaria de escrever um programa que solicita ao usuário para uma seqüência e depois capitaliza essa cadeia. Bem, vamos começar com alguns familiares código de declarar uma string chamada s e atribuindo-lhe o retorno valor de getstring. E vamos agora avançar para iterar as personagens desta cadeia. Bem, como fazer isso? Acontece que uma string é apenas um sequência de caracteres, mas mais corretamente, uma string é um array de caracteres, o que significa que podemos usar notação colchete de índice para uma corda e obter pelo indivíduo caracteres. Em outras palavras, podemos faça o seguinte. Para int, i recebe 0, e fica n, dizer, o comprimento do s, usando nossa função [? agitar?] [? linha,?] i é inferior a n i + +. Em outras palavras, com este ciclo, podemos irá iterar sobre todas as n letras na cadeia s. E dentro deste loop, eu vou verificar, se o caráter i-th em s maior do que ou igual a um minúsculas, e o caracter i-th é inferior ou igual a um c minúsculo, então eu quero proceder para capitalizar essa letra. Em outras palavras, eu quero imprimir% c como um espaço reservado e substituto para suporte de i que espaço reservado s. Mas, então, eu preciso converter s suporte i em maiúsculas. Para fazer isso, eu posso simplesmente subtrair tudo o que é a diferença entre minúsculas e um capital de A. Bem, eu realmente me lembro de que o capital é uma 65 em ASCII, e minúsculas é um 97. Assim, a diferença é tecnicamente 32. Então, eu poderia apenas código rígido de 32 aqui. Mas eu poderia não necessariamente lembre-se esses números. E além disso, o que se variam de acordo com computador? O mais provável é que não são. Mas o ponto é que eu ainda posso generalizar essa expressão aritmética como apenas o que é a diferença entre um minúsculo e um A maiúsculo é o que eu quero para subtrair fora de esta letra minúscula particular. Agora, se esta carta especial não é minúscula, eu simplesmente quer imprimi-lo. printf,% c como o meu espaço reservado, s suporte i. Na parte inferior do programa, vamos simplesmente imprimir nova linha para que a minha prompt aparece em um novo linha própria. Vamos agora compilar este programa com o make capitalize0. Vamos executá-lo com capitalize0. E vamos digitar uma palavra como Olá em todas as letras minúsculas. Eu voltar OLÁ em maiúsculas como esperado. Mas vamos tentar mais um teste, desta vez com meu próprio nome, D-A-V-I-D, mas com o primeiro D capitalizados, apenas no caso eu errei alguma coisa com esse primeiro caractere. Enter e D-A-V-I-D em maiúsculas é impresso bem.