Olá, seja bem-vindo de volta.
Estamos em uma nova seção.
Nesta seção, vamos falar sobre cadeias de caracteres.
Você provavelmente já me ouviu dizer a palavra string um pouco durante a aula,
e você pode ter ficado um pouco confuso.
Uma string é na verdade apenas uma palavra.
É algo fechado entre aspas duplas.
Vamos falar sobre como podemos armazenar strings em matrizes de caracteres.
Então, até este ponto, estamos bastante familiarizado com um único caractere, o
tipo de dados char ou o tipo de dados "cuidado", como você quiser para pronunciá-lo. Nós sabemos o que é, mas não aprendemos realmente
sobre as palavras.
Para atribuir um único caractere a uma variável char, o caractere é
colocado dentro de um par de aspas simples.
Estamos familiarizados com isso.
Aprendemos
tudo sobre isso. Neste exemplo, sinal de mais é igual a mais entre aspas simples.
O importante aí são as aspas simples.
Você também aprendeu que lá é uma distinção feita
entre aspas simples e aspas duplas.
Então, se você colocar a variável de sinal de mais e
você atribui algo entre aspas duplas e o sinal de mais é do tipo char, isso não
vai funcionar, porque você só pode atribuir um único caracteres para o tipo de dados char.
Uma constante de string ou literal de string é uma sequência de caracteres ou símbolos entre
um par de aspas duplas.
Então agora as aspas duplas são vai vir uma nova peça.
Qualquer coisa entre estes duplos aspas são interpretadas pelo
compilador como uma string.
E então realmente pode ser caracteres alfanuméricos, podem ser
caracteres especiais, mas eles normalmente inventa palavras que você pode pensar nisso
como um texto.
Você pode ter espaços.
Mas qualquer coisa em dobro aspas é um literal de string.
Cada vez que você exibiu uma mensagem usando
a função printf, definimos o mensagem como uma constante de string.
Lembre-se de printf, o primeiro argumento colocamos algum texto lá dentro e temos
alguns especificadores de formato.
Essa é uma consoante de corda.
Você também ouve o termo string literal é a mesma coisa.
Então, dizemos print f, isso é uma string tudo entre essas
aspas é uma constante de string e podemos colocá-lo em uma ou duas linhas.
Você também percebe que pode possuem instruções de impressão que
possuem sequências de escape barra invertida n. Agora este terceiro é muito legal que explicarei
em um segundo.
Mas o ponto principal é que você tem para
entender a diferença entre aspas simples e duplas citações e o que está lá dentro.
Com as aspas duplas, você tem cordas.
Com as aspas simples, você tem personagens.
Existem dois tipos de constantes.
Para este terceiro exemplo, este printf onde temos os quatro e, em seguida, temos
uma barra invertida e uma aspa simples.
Se você realmente quiser exibir uma aspa simples
como saída, você deve escapar dela.
E você pode escapar especial caracteres usando a barra invertida.
Então, no terceiro exemplo, é realmente
imprimindo quatro aspas duplas que você escreve, e depois outra aspa dupla.
Assim, o compilador interpreta um explícito aspas duplas sem barra invertida precedente como
um delimitador de string.
Todas as outras vezes você usa um duplo cite o início e o fim de uma
string, mas e se você quisesse exiba-o então você tem que apenas colocar
a barra invertida na frente dele.
E vai dizer ao compilador ei isso não está realmente terminando a string.
É algo que queremos para exibir ou algo
que desejamos usar como esse caractere.
Além disso, você tem que usar o escape seqüência se você quiser
fazer a barra invertida também porque o a barra invertida é uma sequência de escape.
Então, quando você vê a barra invertida barra invertida, você está realmente exibindo
essa barra invertida em uma função printf.
Se você vê em qualquer outro lugar, você está atribuindo a barra invertida
a uma variável ou como ela é usada.
Mas uma barra invertida se seguiu por outra barra invertida irá escapar da
string de barra invertida.
E, novamente, uma barra invertida e uma string sempre sinaliza o início
de uma sequência de escape.
Então, um por si só é não vai exibir.
Esses são personagens especiais.
Então, quando você está entre aspas, você pode ver as barras invertidas para
escapar de caracteres especiais e até a própria barra invertida.
Veja como string está na memória.
Uma string na memória é cada caractere é representado
por um bit aqui.
E então, se você tiver uma corda chamado de string, você verá onde o
o espaço tem algo na memória.
E você também deve notar em o fim daquela barra invertida zero que é
o terminador nulo sobre o qual vamos falar.
Mas para a segunda corda, novamente, você vê tudo o que está na memória.
Até mesmo a barra invertida que representa uma nova linha na memória.
E então para você certo, você vai observe que a citação está na memória.
Mas a barra invertida não é.
Porque a barra invertida está delimitando a citação.
Está escapando da citação.
Então é assim que fica na memória.
Você deve notar que a corda na memória sempre tem pelo menos mais um
byte para aquela barra invertida zero, que é o caractere nulo.
Também se parece com o diagrama na parte inferior está incorreta.
Você notará que o "você" não é mostrado aqui então, após a aspa dupla, você não
vê você lá. O que você deveria ser lá em
algum lugar e meio que se aplica, está lá em algum lugar, eles estão realmente apenas
mostrando que estes são os valores ASCII abaixo e então é apenas mostrando - não mostrando, mas você
estaria bem antes da direita.
E é isso que eu quero falar sobre é esse caractere nulo.
É um personagem especial com o valor de código zero.
É adicionado ao final de cada string para que o compilador saiba
onde termina e também quando você o executa.
Este personagem é conhecido como o caractere nulo, e você
não apenas coloca um zero nele você pode colocar uma barra invertida zero.
E isso é o que estava neste slide anterior bem no final.
E pode ser em qualquer lugar na verdade, na memória.
E dependendo de onde está memória, uma função vai e
olha até ver que barra invertida zero e pode exibi-lo ou manipulá-lo se
você usando diferentes funções de string.
Isso é muito importante aquele caractere nulo.
Uma string é sempre terminada por um caractere nulo.
Portanto, o comprimento de uma corda é sempre um maior que o número
de caracteres na string.
Isso vai se tornar muito importante quando usamos matrizes de caracteres e especificamos
o tamanho do array o tamanho do array sempre terá que ser um a
mais do que como muitos caracteres que você deseja armazenar por
causa desse caractere nulo.
Também temos um conceito de nulo sobre os quais não
falamos em muitos detalhes.
Geralmente entra em jogo quando falamos
sobre ponteiros, mas não confunda o nulo caractere com a palavra-chave nula.
Portanto, há uma palavra-chave nula em um dos os cabeçalhos de inclusão que você pode usar.
E este é um símbolo que representa um endereço de memória
que não faz referência a nada.
Então você o usa quando você quando você usa ponteiros.
Um caracter nulo é apenas um terminador de string.
Falaremos mais sobre null quando falar sobre dicas, mas certifique-se de
entender a diferença entre caractere nulo e a palavra-chave nula.
Você pode adicionar um caractere de barra invertida de zero ao final
de uma string explicitamente e isso criará duas strings e Mostrarei como fazer isso quando falarmos
sobre a definição de matrizes de caracteres.
Aqui está um exemplo com o terminador nulo.
Temos uma impressão f aqui, e dizemos o caractere e a barra
invertida zero que termina uma string.
Então o que vai acontecer é se você compilar
e executar este programa, a saída
que você obterá é a primeira linha será o caractere e, em seguida, a barra invertida o vai haver um fim
e apenas a primeira parte de a string será exibida.
Não vai haver mais saída porque print pensa que é o
fim da string.
Então, apenas imprime o personagem.
A produção vai terminar após essas duas primeiras palavras porque a função
para de produzir uma vez ele atinge o caractere nulo.
Portanto, a segunda barra invertida zero no final da string, então, embora você não
veja uma barra invertida de zero aqui, antes da aspa dupla
final, logo após o ponto da string, ainda há um lá, mas você
nunca, ele nunca será alcançado.
Portanto, há um terminador nulo implícito no final da string e o printf para
que ele saiba onde terminar.
E se você adicionar outro, é apenas vai exibir até aquele primeiro.
Portanto, o primeiro terminador nulo que é encontrado na série de caracteres
sempre marca o final da string.
Portanto, entenda esses caracteres nulos.
Esta foi apenas uma visão geral rápida descrever o
que é uma string e entender que strings estão entre aspas duplas.
E também quero descrever o caractere nulo.
Na próxima palestra, vamos entender o que são cadeias de
caracteres em termos de como você pode criar estes diferentes este um
tipo de variável para armazenar strings.
Obrigada.