Summary
Keywords
Full Transcript
Cupons para meus cursos na Udemy https://wagnergaspar.com/cupons_udemy/ Uma string pode ser lida do teclado facilmente com a função scanf(), mas há dois detalhes que devem ser levados em conta. O primeiro é que para ler uma string fazemos uso do %s. O segundo é que, até o momento, sempre utilizamos o operador & na frente do nome da variável. Isso é necessário porque a função recebe o endereço de memória onde será salvo o dado lido. Contudo, como veremos mais a frente em nosso curso quando formos estudar ponteiros, o nome de um vetor já é um ponteiro. Assim, não devemos colocar o operador & na frente do nome da variável PARA LER UMA STRING, assim: char palavras[100]; scanf("%s", palavras); Ao testar esse código algumas vezes você perceberá que será lido apenas a primeira palavra. Esse é o funcionamento padrão da função scanf() para a leitura de texto, é lido até o primeiro espaço. Outro problema que pode ocorrer é que, por padrão, a função scanf() não verifica o tamanho do vetor. Assim, se o vetor tem tamanho 20 mas o usuário digita um texto com 40 caracteres, serão ocupadas as 20 posições do vetor, mas também serão ocupadas as 20 posições seguintes (lembra que eu disse que um vetor é sequencial na memória?) que não pertencem ao nosso programa. Para que isso não ocorra, podemos escrever a função scanf() assim: char palavras[100]; scanf("%100[^\n]", palavras); O número após a o sinal de % é o tamanho do nosso vetor, ou seja, a quantidade máxima de caracteres que podem ser lidos. Os caracteres entre o par de colchetes altera o funcionamento padrão da função para ler tudo que for digitado ATÉ que o ENTER seja pressionado. Código disponível em: https://wagnergaspar.com/
