Linguagem C - Aula 6.2 - Strings: trabalhando com dados de texto em C (2022)

85.38k views7772 WordsCopy TextShare
Pietro Martins De Oliveira
👨🏻‍💻 QUER TER ACESSO ÀS LISTAS DE EXERCÍCIOS E SLIDES DA AULA ⁉️ 👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇...
Video Transcript:
E aí e Salve salve meu querido minha querida Tudo belezinha agora a gente ainda seguem vectores mas agora falando de vetores para a gente finalmente poder manipular dados do texto que uma forma mais robusta em linguagem C A gente fala portanto agora distritos não lá passada falamos aí de vetores geralmente aí vetores numéricos a gente falou lá que os vetores eles podem ter um tamanho n se ele tiver um tamanho M as posições do vetor vão de 0 até n - 1 a gente viu que a linguagem isso aí é permissiva então a gente corre
o risco de que o programador ou a programadora na hora de escrever o seu código ele extrapole os limites do vetor e a linguagem C ela não prata isso em tempo de compilação então você pode ter situações nas quais o código o programa ele até realmente consegue extrapolar e isso e memória e aí o comportamento adverso e imprevisível dependendo da máquina dependendo do ambiente nós temos também a questão da lista de inicialização e quando a gente declara um vetor a gente já pode preencher as suas posições dentro das chaves lá e tudo mais a gente
viu que naquele caso a gente só conseguia acessar todas as posições do vetor de uma única vez em linguagem C por causa que isso era feito na inicialização junto com a declaração do vetor quando a gente tentava acessar é todo o vetor de uma vez fora do espaço da declaração desse vetor isso irá causar para nós um erro de compilação ok que mais que a gente viu a gente viu que é muito comum usar vetores em conjunto com estruturas de repetição com laços geralmente um for que inicia em 0 e vai até enquanto ir por
exemplo por menor do que M aonde n um exemplo aí o tamanho do vetor beleza isso faz com kiwi oscile de 0 até n - 1 e aí a gente usa o II enquanto o índice das posições do vetor para ir para você são nesse vetor no caso a gente viu o exemplo aonde a gente pegava o controle dos vetores jogava dentro de uma variável essa para fazer uma soma é uma acumulação de valores a gente viu também a situação na qual a gente pegava cada posição uzinha do vetor e Lia essas posições Lia o
conteúdo para ser armazenado nessas posições com o esquema f e depois a gente ir lá e imprimir é isso com print efe na tela para o usuário ver o que aquele digitou enfim a gente viu bastante coisinha sobre vetores é importante aqui antes de vir para cá que você tenha praticado os vetores com bastante amor Beleza porque agora a gente vai continuar usando o conceito de vetores mas agora voltando para dados de texto falando ah in the Strings Strings é a mesma coisa que vetor de caracteres vetor deixar dados de texto beleza Ou seja agora
como a gente tem um vetor de caracteres a gente vai conseguir finalmente armazenar palavras inteiras armazenar frases inteiras e não só um caracter por vez porque quando a gente cria uma variável shar que não é vetor nessa variável Shark não é vetor um vai arrochar simples nós temos apenas 8 bits em memória e com esses 8 bits a gente consegue armazenar apenas um carácter alfanumérico a letra a a letra x o número 1 o número 3 o ponto o ponto e, em qualquer texto que eu consigo digitar por teclado a gente consegue armazenar e une
puxar agora se eu precisar mas é na vários charvarius caracteres alfanuméricos aí em linguagem C A gente não tem como não a entender diretor deixar beleza Olha só então em linguagem ser dados de texto são algo um pouquinho mas trabalhoso de trabalhar aí é trabalhou de trabalhar em Londres é algo pouco abstrato é algo assim que tá mais próximo do Ryder outras linguagens como o pai tão como Java linda um contexto de forma mais simples Até o próprio você mais mais já começa a dar um pouco mais de liberdade para o programador através de bibliotecas
aí por uma stringhi agora aqui em igual a gente você a gente estava lidando com lógica de programação e a lógica de programação aqui negócio ela tá indo para um nível que ele fica um pouco mais próximo do Ryder então por isso é isso linguagem ser é pouco abstrato a gente diz isso Beleza então aí é preciso entender como os dados ficam em memória e aí resgatar um pouquinho da aula anterior na qual como eu disse e ele consegue armazenar em cada posição de seus índices ali um dado distinto beleza e aí a ideia aqui
é que a gente tem um vetor deixar aonde em cada a posição a gente tenha um carácter diferente da minha palavra ou da minha frase entre o texto como tudo legal olha só como que ficaria um vetor deixar vetor de Charme memória ficaria do jeito que a gente está vendo aqui embaixo ó nós temos ali a em cada posição Zinha do nosso vetor deixar um carácter diferente uma letra enfim carácter diferente ó na primeira posição na posição de índice zero nós temos o ó na posição de índice uma segunda posição com Elle a terceira posição
o ar com um assento na posição de ense3 o exclamação e na posição de índice 4 ou seja na última posição levando em consideração que estão vetor deixar de tamanho é a última posição está no esse quatro eu tenho ali o carácter nulo cara que é/0 \0 a gente vai entender o que que esse cara que tá é/invertida certo mas basicamente o que nós temos linguagem C é texto dessa forma legal ó o barro invertido a zero aqui já adiantando para ti é o seguinte em linguagem que você para máquina entender aonde que uma string
de acaba Aonde tem uma palavra ou um texto acaba a gente tem que finalizar que a última posição ele vai estar no Barra 0 que é o carácter nulo é o último caracter é o caracter que indica que ali não tem nada mais Alice encerra a Spring a joia Se eu precisar armazenar 10 letras em uma palavra por exemplo em um vetor deixar eu vou ter que ter 11 posições a ideia aqui olha só é que na última posição eu tenho é esse caracter/0 aqui porque eu tenho linguagem C e a máquina depende desse barra
zero para descobrir para entender em tempo de execução que ali se encerrou a string ele se encerra o texto ali se encerra a palavra Beleza então olha só para 10 caracter eu vou ter que ter um vetor de 10 posições no qual a 11ª posição Aí sim é que a 11ª posição ela tem um caracter nulo Ok E aí as dez posições anteriores armazena o texto propriamente dito é muito comum que a gente use a um scanner para ler dados além dados via teclado e não com do usuário precisa digitar um texto via teclado e
a gente vai armazenar esse uma variável vetor deixar aqui numa Spring a gente pode apelar aqui e por isso que eu efe o escala F ele tem umas em táxi um pouquinho chatinha como a gente já viu lá nas aulas anteriores tá Então essa é uma das limitações dos canais o especificador de e quando a gente quer que o usuário insira toda uma palavra ou uma frase é o percentual É sim então o especificador centro-oeste tem que ser o carinho que a gente coloca lá dentro desconhece beleza ó e assim táxi fica mais ou menos
com essa cara aqui ó Scan nef percentual Oeste e aí eu coloco o nome do vetor deixar lá da string perceba que nesse caso não preciso mais doer comercial tá então agora eu consigo ler toda uma string eu não preciso ler caracter a caracter digito uma letra da entendi tu tá no trabalho ainda digita outra ler também tem jeito eu falei né não preciso disso né os canela é poderoso o suficiente para que o usuário digite toda a palavra ou texto ou a frase e quando ele teclar enter aí tudo isso vai ficar salvo nesse
vetor deixar então aqui é uma exceção ao fato da gente poder acessar todo o vetor de chá de uma única vez por exemplo quando a gente faz a e agora o problema desses caneca do jeito que vocês estão vendo aqui nessa primeira sintáxi geral o problema é que nesse formato aqui de leitura usuário não vai conseguir inserir dados com o espaço se o usuário vem junto com uma frase um espaço ele vai ficar chateado porque ele vai digitar vai dar enter Mas eles caneco só vai ler até o espaço vai ignorar que nunca foi escrito
para depois do espaço Isso é um problema nesse efe aí a gente vai depender dessa sim táxi mas aprimorada aqui um um probleminha também a mais que tem com essas syntax aqui nos canef anterior assim táxi geral que se o usuário for digitando um texto aqui é maior do que o tamanho da nossa estrelinha o esquema aqui deixa a leitura acontecer então se o cara vai lá e digita por exemplo vamos lá a isto você já tem um vetor deixar lá tem dez posições e usuário em tempo de execução vai lá e digita um nome
com 20 posições sei lá digita uma palavra com 20 caracteres mas o vetor deixar só tem 10 posições então Oscar Neto vai deixar que as 20 letras sejam Unidas se for feito dessa forma que dá sim táxi Geral agora assim táxi aprimorada é um pouco mais poderosa apesar das em táxi ser rebuscada a gente consegue dizer qual é o tamanho Esse é o tamanho da string a ser vida ok e a gente pode incluir aqui uma expressão uzinha dentro do especificador de formato por cento essa aqui que também permite que os espaços sejam lidos e
que daí o cara consiga digitar espaço no teclado e teclar enter lá e aí os canais vai ler também tudo o que foi lido como espaço inclusivo que foi mesmo depois do espaço acho eu lembro que quando eu gravei lá as nossas primeiras aulinhas e que eu falei para vocês os especificadores de formato no esse canef que latinha a uma questãozinha lá do acento circunflexo charque Na época eu falei não se preocupe com isso você não vai usar isso agora agora sim a gente vai usar esse trem Beleza então é aqui que a gente usa
o acento circunflexo e o chazinho lá para dizer qual é o caractere que a gente não quer a música nesse lei e nesse caso que que eu vou fazer ó no frigir dos ovos essas em táxi aqui ela parece toda rebuscada mas a gente vai ver que na prática não tem muito segredo é bem tranquilo tá o que ele faz aqui é um percentual se perceba que tem o percentual aqui e tenho essa e também do mesmo jeito que tem lá na sintaxe geral mas na sintáxi aprimorada eu coloco o tamanho da string - 1
unidade Porque na última posição eu preciso que esteja lá o Barra invertida zero para dizer que estranho e se encerra ali Beleza então eu digo aqui qual é o tamanho da string que eu consegui limitar o número de caracteres Que o usuário digito para que ele não extrapola o tamanho da string beleza tamanho menos um aqui e eu coloco ainda esse abre colchete acento circunflexo/invertida em fecha colchete antes do S Porque daí eu consigo ler espaços e aí o meus canef ele o mundo o que vier antes do enter quando o cara teclar enter ele
vai ter lido tudo que veio antes doente aquele teclado lá em tempo de execução que usuário teclo em tempo de execução beleza e isso tudo aqui também fica salvo na string STR Professor Pietra falou demais fica tranquila fica tranquila a gente vai ver isso aqui no exemplo na prática como é muito mais simples de entender o print F para imprimir na tela também leva o especificador de formato quando a gente quer imprimir o conteúdo de uma string na tela tá a gente usa o por cento S E aí a gente faz aquele mesmo esquema lá
o print F coloca entre aspas duplas o texto que a gente quer imprimir dentro desse texto aqui vamos percentus s ou ser vamos especificadores de formato relacionados a cada uma das Strings a cada um dos vetores deixar aqui que a gente quer imprimir na tela então str-11bs 12 Ed cetera et cetera strn aqui para nós sem que tem que ser substituído pelos nomes dos vetores deixar que a gente quer embutir para cada par centro-oeste do nosso print F eu tô falando bastante aqui eu imagino que talvez fique confuso para você a hora que eu tô
explicando aqui de forma generalista mas se a gente for por exemplo vai ficar mais claro então vamos lá olha como é muito mais tranquilo do que parece e eu queria aqui um vetor de chá com 10 posições a beleza Tô minha stream tem 10 posições se ela tem 10 posições eu consigo salvar de maneira Saudável em linguagem C até 9 caracteres de úteis porque o último caractere tem que ser o Barra zero para máquina saber que ali ah ah stayin' Serra legal então olha só e que eu fiz aqui ó eu na linha 7 pedir
para o usuário digitar algo informei Ó você está digitando algo usando o skar né Fico convencional usando assim táxi do ska nessa era só assim táxi geral aqui no scanner Fi beleza e olha só Aí eu uso esse canef das sintaxes geral conhece por cento s e o nome da minha variável vetor de charque no caso aqui é o é se perceba que não tem e Comercial que não preciso de comercial nesse caso só nesse caso tá E aí eu venho aqui ainda e coloca essa função f Flash std1 já já eu vou explicar para
você para que que serve isso mas já Assuma que toda vez que você fizer um Scan nephilim guagem ser é legal que você chama essa função f flecha stdi a partir daqui a gente vai começar a inserir esse cara com uma boa prática sempre que a gente usar uma função de entrada de dados via teclado já vou explicar para vocês que que eu esses dois mas basicamente que eu quero que você entenda aqui ó e da linha 7 a linha 8 usuário vai poder digitar o Condado de texto via teclado e aí depois eu chamo
aquele Flash só por boa prática aqui já vou explicar a gente certo então o cara digitou o texto ali eu vou lá e imprimir na tela olha o que você acabou de digitar resultado por cento s&o esse por cento essa aqui vai estar relacionado ao meu vetor deixar é esse aqui ele então o percentual esse vai ser substituindo em tempo de execução pelo conteúdo do que foi inserido aqui nesse nessa variável S na linha de pode muito beleza para digitar a gente mostra na tela basicamente isso depois e eu peço para o cara digite mais
uma outra coisa aqui digite mais algo digite uma outra coisa e agora usando na verdade não está nem com convencional mais um Scan nef aprimorado a joias caneta e aprimorado aqui beleza e aí o que que eu faço agora eu tenho sim táxi mais rebuscada lá agora eu tô trabalhando com essa sintáxi aprimorada onde eu coloco o tamanho o ducado dado que eu quero ler e aí eu coloco lá o circunflexo \n entre colchetes para poder ler espaços legal então olha só coloca o tamanho Oi e eu coloco olá uh abre colchete circunflexo bairro aqui
na em fecha colchete Isso aqui vai me limitar em uma leitura de até 10 caracteres OK e eu vou ler poderei espaço aqui agora então aí depois de feita essa leitura a gente imprimir isso na tela ignoram é flash aqui por enquanto já vou explicar o que que é flash estão compilando e executando que a Neve convencional a gente tá parado aqui na linha oito ó Então vamos lá Pietro o Martins de Oliveira o que que deve acontecer aqui nesse momento ele vai acontecer é que ele vai imprimir na tela que o resultado e depois
já vai pedir para o Inserir a próxima palavra próximo a letra limpinha a próxima o próximo texto e aí eu vou inserir Pietro Martinho de Oliveira de novo para o outro está NFA para os canef aprimorado tá vamos comparar os resultados depois olha só a E aí e olha o que aconteceu e no skanect convencional e eu digitei o meu nome com o espaço ele só leu até o espaço e depois ele ignorou tudo que veio a seguir música nef aprimorado olha só ele leu um dois três quatro cinco seis sete oito nove dez caracteres
só que isso não deveria estar sendo feito assim porque porque como eu disse para vocês é preciso que a gente reserve um caracter para o Barra 0 Ok Então olha só a gente viu que ele limita exatamente no número que a gente colocar aqui no está nef mais aprimorado e nos caneta anterior ele não lê com espaço Agora vamos fazer um novo teste novo teste aqui eu vou fechar aqui eu vou corrigir para m - 1 então semestre que tem tamanho n eu vou ler até a n - 1 caracteres por quê Porque o último
caractere tem que ser o Barra 0 tá então quando eu for ler com os canais aprimorado tem que lembrar de que eu não posso usar todas as posições do vetor e outra coisa aqui nesses canef aqui a gente precisa fazer um teste para mostrar que ele não limita o número de caracteres livros a gente viu que a limitação de não ler o espaço ela existe e alimentação de poder estourar o tamanho do vetor só acontece também então vamos compilar e executar novamente aqui agora eu vou colocar aqui ó Pietro Martins de Oliveira tudo junto Porque
eu sei que ele não lê espaços então se eu quero testar aqui agora esse deixa ler mais caracteres do que o tamanho da string podem entrar e não é que ele deixou mesmo olha só só um perigo né tô invadindo posições de memória a minha stream olha só só tem 10 caracteres com 10 posições é que eu li ó uma duas três quatro cinco seis há 8 9 10 aqui já já explodiu né 10 11 12 13 14 15 16 17 do Olha só o tanto que ele deixou letra frente para além do tamanho da
string que são problemas que a gente poderia a causar um comportamento completamente adverso na sua máquina por exemplo e aqui eu vou colocar Pietro Martins de Oliveira da mesma forma e agora olha que legal agora sim os Caneca tem orado Ele leu 123456789 caracteres E aí eu garantia que o último Claire vai ficar reservado para o Barra 0 e o scanner Ele se encarrega de colocar esse barra 0 no final automaticamente para nós a gente não precisa se preocupar com isso uma lista de tecla entre os canais já coloco o barrado internamente memória lá para
nós a gente não esquenta a cabeça com isso tá agora é importante dizer que de novo os Caneca tem morava aqui ó ele levou o nove como fator limitante do mundo se você já que a minha Springer essa tem tamanho 10 isso aqui é o correto quando a gente vai trabalhar com isso canef na leitura de Strings beleza tudo bem muito bem agora vamos dar sequência na aula a gente vai falar dos Guedes SC a gente vai trabalhar com outras funções aqui o gatt é se ele é também uma função para fazer entrada de dados
ele tem a seguinte limitação ele deixa de novo a gente lê mais caracteres do que o tamanho da estranho pagamento dita sintáxi bem tranquila eu chamo pelo ISS passa o nome do vetor deixar lá e aí usuário pode já inserir os dados via teclado a grande vantagem é que realmente as Impacto é bem simples beleza outra função Zinho aqui é o FGTS o FGTS ele ele é muito poderoso eu gosto muito mais de usar o fss do que qualquer outra função de entrada de dados com Springs porque é é porque assim táxi dele ele ela
permite que eu coloque lá o nome da string que eu limite diretamente na função aqui no parâmetro da função Qual é o tamanho da string eu não preciso ficar pensando inclusive se eu tenho que colocar o valor em menos um ou n ou s etc eu coloco direto tamanho das tem direto Ok E aí ele se vira lá para colocar o Barra 0 no último caractere para mim E aí eu espaço sempre o saldo STD inhac como último argumento é CTB em linguagem C significa a entrada de dados padrão no nosso caso a entrada de
dados padrão é sempre o teclado então o que que o FGTS vai fazer ele vai pegar do teclado algum dado ele vai limitar no tamanho igual ao tamanho da string vai já reservar a última posição para mim como sendo/0 E aí vai salvar isso dentro da região de memória delimitada pelo nome do vetor de charque eu criei lá beleza Esse é o FGTS para saída e além do printy efe eu tenho que o pote Essa é o Cut É esse aqui o s em inglês né ele vai imprimir uma estranha diretamente na tela ele não
admite outros parâmetros outras variáveis de outros tipos eu não consigo por exemplo tentar imprimir umplute ou inteiro ele exige que o argumento aqui que o paramos estejam stream a a função Ela é bem simplesinho aqui tá ela ela é simplesmente pudesse e o nome da string E aí eu contei o da string que vai ser lá empréstimo beleza e aí finalmente a gente fala o tal do e Flash aqui ó o é Flash ele é muito legal de ser chamado sempre que a gente faz uma entrada de idade Por que que a gente chama o
é flash with Flash ele é útil para que a próxima leitura de entrada de dados via teclado é de problema especificamente quando a gente está trabalhando com entrada de dados do tipo flute e do tipo puxar em linguagem C O quê que pode acontecer pode acontecer que depois de um Scania F ou depois de um that s How depois de um FGTS Pode ser que imediatamente depois se a gente tiver uma outra leitura de dados e chamei um é o FGTS lá e depois chamei um outro FGTS Pode ser que o segundo FGTS simplesmente não
funciona porque quando eu digito dados pelo teclado no primeiro fss lá ou no primeiro esquelético e o teclado trava o teclado Buga e fica com um lixo de memória no buffer E aí se eu não chamo essa Flash o segundo esse Caneca o segundo FGTS que vier vai pegar esse mito do buffer e vai salvar dentro mais 30 que geralmente é o caracter no mundo geralmente é um lixo de memória que a gente não tem controle então quando eu no primeiro está nef logo em seguida dele já coloca um essas Lanches eu dou descarga no
teclado e aí o próximo FGTS o próximo está né fi vai funcionar certinho beleza isso é muito importante então agora a partir de qualquer espécie qualquer GPS e qualquer FGTS em linguagem C A gente vai sempre colocar esse é flash aqui para que as leituras via teclado futuras não travem no nosso programa maravilha vamos lá fazer um exemplo aqui olha só vamos fazer um teste aqui ó eu vou tirar o é flash o anterior vou tirar o fps do exemplo anterior talvez de erro talvez não esse comportamento ele é imprevisível também depende do ambiente depende
da máquina depende da hora que o programa está sendo executado então quê que vai acontecer que que eu espero que aconteça que esses canef aqui funcione mas que quando esses canais vai ser feito ele seja simplesmente pulado ignorado vamos ver se ele vai funcionar esse erro vai ser reproduzível olá Pietro falar ó olha aconteceu ó eu digitei Pietro E aí olha só ele a máquina pediu para eu digitar depois Pietro novamente mas ela não simplesmente não leu olha pulou e foi direto para o próximo dado no próximo próximo printf aqui ó bom então quando eu
esqueço o é flecha eu vou reproduzir de novo colocar o é flash agora aqui no exemplo anterior ou voltar com essas Lanche ou compilar executar e vou digitar para vocês como que era para vocês verem como que era para ter acontecido antes só digitei Pietro ele pede para digitar outra coisa de novo depois eu vou colocar qualquer coisa aqui o a levo né ó agora foi a segunda leitura foi lá foi ó E se eu removo é flash o seu remova olha só e olha o que que aconteceu Olha o que que aconteceu ele jogou
no lixo de memória o olha só digitei lendo dados e os Caneca interior ele jogou no segundo Escalão f o tal do dados então o comportamento fica realmente bastante bagunçado A ideia é que sempre depois de uma escada F sempre depois de um that s de um Resgate essa a gente tenha uflash beleza agora sim vamos para o próximo exemplo aqui ó ó nós vamos fazer aqui só uma leitura com o ISS Olha só bem tranquilo chama Odete essa e passo a esfinge Vamos fazer uma impressão com flete s Olha só ok E aí depois
uma leitura com o fss eu passo a string passa o tamanho dela e passo o SPD em pó percebo que o STD em agora ele tá tanto no FGTS quanto não é flash então o que que o f-prot faz de novo lembrando ele dá um lanche uma limpada no teclado STD in é o teclado para nós em linguagem C aula testar esse código aqui Oi gente algo para leitura com o get Pietro Martins de Oliveira SS ele não controla há limite de tamanho de Vetor beleza aqui tem muito mais do que 10 caracteres e ele
leu com sucesso tem um problema deveria limitar e o FGTS limita em 10 Olha lá na linha 15 se a gente for agora continuar a execução do programa ele tá esperando na linha 15 para que eu faço uma leitura pelo fss olha imprimir uma mensagem da tela aqui na tela a mensagem da linha 14 beleza vamo lá agora vou tentar digitar é o mesmo texto agora é só ele leu só uma duas três quatro cinco seis sete oito nove letras 9 caracteres incluindo o espaço e o último ele reservou para o Barra 0 e o
programa se encerra de maneira bastante feliz aqui mostrando o resultado tá joia Tudo bem agora vamos nos Direcionar para o fim da aula aqui vamos ver agora algumas funcionalidades importantes em linguagem C para trabalhar com Strings aqui a gente vai precisar agora trabalhar com uma Bendita biblioteca crimson Court uma disse para vocês no início dessa aula trabalhar com o texto linguagem você é algo bastante talvez rebuscado é menos abstrato trabalhar com os trens linguagem segundo eu falo menos abstratos significa que é mais é mais trabalhoso porque a gente tem que ir e a esfinge como
ela fica em memória a que linguagens e então algumas funções vinhos para facilitar nossa vida vão ser úteis aqui e Essas funções são da biblioteca esse trem e vão pagar a primeira delas eu quero falar pra vocês aqui strcpy se eu quiser lá uma variável simples por exemplo Faria ruim fazer valer 10 e valer um rim vale5 variável int simples eu só faço um igual a 10 igual assim igual a um dependendo da atribuição que eu quero fazer com a variável simples do tipo int não tipo Cloud então variável numérica ela permite uma atribuição direta
aqui eu não consigo pegar uma Spring e fazer ela igual alguma coisa a não ser que seja como a gente fez com os vetores na aula anterior no momento da declaração através de uma lista de inicialização aí eu consigo fazer stream igual alguma coisa O porém no meio do caminho do meio do código depois de já ter declarado lá a stringhi eu não consigo fazer stringhi igual alguma coisa para eu modificar o conteúdo de uma string ring para eu fazer uma atribuição ou uma estranho dependendo da função strcpy e aí lembra lá que eu falei
para você do a sua lista de erros no seu caderninho de anotações para anotar lista de erros isso aqui não é um erro para mim te dito mais isso aqui vai servir muito para você lembrar e quando você precisa alterar o conteúdo de uma string Gui e via código aí você vai depender do strcpy você não pode usar o igual então anota aí que stringhi não se altera com o igual tem que se altera com strcpy quando você precisa alterar o conteúdo da Spring ver a código de maneira literal E como que funciona strcpy funciona
assim ó o destino origem dentro do STF do veículo strcpy abre parentes coloca o nome da string que vai receber o conteúdo, o nome da string que vai ceder o conteúdo Pode ser aqui a origem pode ser uma string literal simplesmente um texto delimitado por "duplas ou pode ser o conteúdo de uma outra Spring beleza STR Kate quando eu quero colar uma estranha na outra Imagine que o cara digita lá o nome e o sobrenome dele ele não digita isso tudo de uma vez em um mesmo scanner imagina que ele vai lá e digita isso
e uns canef primeiro um homem e depois um segundo esse caneco sobrenome de forma que o nome e o sobrenome estão em Strings separadas E aí para eu juntar esse nome eu posso usar o Sr touch eu colar ou sobrenome no nome eu uso o Sr Kate então aí eu coloco a Spring O que quer dizer o nome colado fica na string de destino Oi e a origem fica sendo aí só segunda e sim então quê que o Sr Kate vai fazer ele vai pegar o destino vai somar Vai colar com a origem e vai
armazenar tudo no destino STR Ellen simplesmente mostra qualquer um cumprimento da Spring Qual o tamanho da string não só não sei qual o tamanho daquela stream eu vou lá e passo STR Len a passo para UFPR UEM o nome da minha variável string strcmp compara charstream um é estritamente igual a string de 26 31 for estritamente igual aos 32 o strcmp vai retornar a zero ele vai produzir um valor igual a zero então eu vou comparar strcmp com 10 dentro de um if ou dentro de um galho para saber se é streamers tá sendo igual
ou não vocês 31 for igual a string de dois strcmp e produz o valor zero se é stream 1 não foram igual aos 32 strcmp produz um valor diferente de zero e aí com base nisso eu consigo saber se as Strings são idênticas ou não beleza ele aqui mais um detalhezinho é a biblioteca look eu como pagar a biblioteca Bloqueio com pagar agora ela vai permitir que a gente use acentos nos nossos problemas você provavelmente percebeu que em programas anteriores Em alguns momentos os assentos não estavam saindo como você queria ou até aqui na execução
dos vídeos que a gente viu em aulas anteriores Você pode ter se questionava o professor ali ele colocou um texto ali e não apareceu empréstimo jeito que a gente queria o acento o tio o cedilha não apareceu do jeito que queria porque porque a gente não tava usando o bloqueio agora com um bloqueio incluindo a biblioteca coloquei o ponto pagar e dentro do homem o samba que os sete loqueio passando LC ó e português como parâmetros do jeitinho que tá aqui isso vai permitir que o programa realmente Imprima assentos beleza vamos lá para exemplos vamos
lá então agora a gente vai para o exemplo que brinca com o STS CPM strp olha só e eu tenho uma string de origem Olha primeiro antes de mais nada eu incluir o stringhi para mim pagar lá em cima se você não incluir você não consegue usar o Sr veículo importante lembrar disso incluir também o louco que o ponto H aqui agora tá quando eu invoquei quando for não quando eu declarei quando eu inclui o outro. H aqui eu já fui logo e dentro da primeira linha do homem eu já invoquei a função 7 loqueio
LC ao português aqui beleza então isso aqui permite que a nossa aplicação trabalho com assentos e eu fiz também levar a uma constante aqui definir N = 20 por quê Porque daí agora o tamanho das minhas Strings fica sendo controlado por esta constante Eniac e faz com que o código fique mais fácil de dar manutenção depois se eu quiser alterar o tamanho de todas as estranhas que vem sequência só muda aqui no código o tamanho DN beleza Olha só então a string de origem ela já está recebendo aqui o texto olá mundo beleza a string
de destino não tá recebendo nada aí eu venho e mostra antes do strcpy Qual que é o conteúdo da origem e qual que é o conteúdo do destino a origem eu sei que vai tá escrito lá vou lá no mundo o destino vai saber o que tem dentro pode ter zero pode ter um milhão pode ter enfim ele tem um texto aleatório qualquer não sei o que tem dentro do intestino vai ter lixo de memória e aí eu imprimo isso antes do strcpy então como eu falei para você olha não consigo fazer isso aqui em
linguagem C A Origem recebe destino é o contrário né destino recebe origem não posso fazer isso em linguagem sei se hoje vai dar problema para mim o ok então para eu atribuir o conteúdo de olá mundo aqui ó para dentro de destino eu tenho que usar o strcpy então que eu tô fazendo tô jogando o lá no mundo e tá dentro de origem para dentro da string deste ano e aí eu imprimo isso depois imprimo E aí eu vou ver que em destino eu não vou ter mais isso demora eu vou ter também a mensagem
olá mundo vamos lá com pylon executando Olha só olha só antes de receber Y mais tringue de origem ou a linha de código 14 eu imprimi olá mundo que eu conteúdo de origem o conteúdo de destino um lixo de memória completamente alienígena que eu não faço ideia do que tinha ali né ótimo dinheiro Y tem nada a ver isso né E aí depois da Ester você tem isso olha só para dentro de destino aqui na linha de código 21 olha só foi copiado conteúdo olá mundo beleza então olha só para alterar conteúdos stringhi strcpy não
se esqueça disso você vai precisar desta receita próximo exemplo tô trabalhando aqui com o STR Kate concatenação a colagem de uma string em um outro olha só de novo tive que incluir aqui os tem que pagar beleza também mexer com um bloqueio para poder ter assentos belezinha E aí fiz a string S1 começar com o lógica de a string S2 começando com programação que que eu vou fazer eu vou mostrar o conteúdo de ambas as estrias antes do STR Kate então a esta R1 vai ter um conteúdo que é lógica de e a esta R2
vai ter um conteúdo que é programação separadinho por enquanto depois do STR k que que vai acontecer eu vou pegar o conteúdo ds1 vou emendar no conteúdo ds2 e vou jogar esse resultado pra dentro ds1 então aí depois do STR Kátia eu imprimo o conteúdo S1 E aí é ciúme não vai ter a lógica de mas S1 da Inter lógica de programação dentro do seu conteúdo vamos ver quem olha só é ou não é o que eu comentei com vocês então antes de Mr Cat é serve um lógica dele str2 programação depois de STR Kate
eu emendei ilógica de com programação Isso tudo foi para dentro de quem ó a linha 20 aqui de S um s um tem a concatenação das duas Strings S1 e S2 Que belezinha não para por lá uma string na outra Sr Kate tá somar estranhos né e vamos lá aqui ó agora a gente vai brincar com o STF Ellen olha só incluiu os trem que vão pagar beleza usei o 7 bloqueio também para ter assentos E aí que eu tenho mais Trieste e uma olha eu isso olha só eu peço para o usuário digitar um
texto Eu leio esse texto Dentro do Galaxy S ou Galaxy S ele não limita o número de caracteres que vão dentro de uma string a Oi e aí eu preciso saber quanto que o usuário digitou Quantos caracteres os olhos de todos já que o ISS não limita o usuário pode ter digitado qualquer coisa e enfim a máquina pode ser perder para eu controlar um pouco mais a vida da máquina eu ajudo ela a descobrir qual é o tamanho do texto que o usuário digitou aqui na linha 15 Oi e aí eu pego isso joga para
dentro de Henry quer dizer o STR em ele vai contar Quantos caracteres tem eh se vai produzir um resultado esse resultado vai ser jogado para dentro de então ele vai ter um número de caracteres E aí o imprima o tamanho do texto é por cento dele o conteúdo de ir beleza e olha só depois eu imprimo a stringhi posição a posição então que enquanto for igual começando em zero e começando em zero enquanto I ele for menor do que o tamanho deesse eu passo aí mais detalhe ó aqui ue ele pegou o tamanho total da
stringhi eu fui lá e mostrei isso na tela na linha 16 na linha 19 eu sobrescrever o controle de então o ict no tamanho da string agora ele vai passar Valeu 0 Oi e aí enquanto o i não chegar no tamanho da string eu vou pulando de posição em posição e imprimindo Olha só percentus e para um caractere individual eu vou imprimindo cada posição Zinha DS lembre-se que o s ele é um vetor deixar eu poderia direto aqui ó ao invés de fazer isso aqui tudo ó colocar um ot É esse aqui imprimir é se
poderia daria na mesma mas agora eu quero aproveitar o Sr Enem para imprimir posição a posição bola ver o que acontece aqui a gente um texto Pietro Martins de Oliveira olha só o tamanho do texto 26 impressão posição a posição tá lá bonitinho Ok olha só se eu remover isso aqui se eu remover isso aqui e colocar o tivesse e é para ele imprimir na mesma forma vamos ver como ele vai se comportar agora Pietro Martins de Oliveira é o texto Olha só deu na mesma beleza legal né a e agora ainda por último exemplo
de novo ou depender da biblioteca extingue pode pagar eu usei o 7 loqueio aqui Maravilha e agora olha só o que que eu tô fazendo aqui ó e eu tenho um hard text aqui e o hard Tech que é uma stringhi de 50 posições que começa com o comando barra e 15 e ó e aqui eu tenho uma string chamada senha o Sr E aí o que que eu quero fazer com esse código eu quero ver se o usuário digita a senha que está lá no hard teste e está armazenado no meu programa dentro da
variável rádio text mas eu quero que usuário digite algo para eu comparar com o que está armazenado no programa simulando por exemplo um comando de saída ou uma senha ou em tem simulando a comparação entre duas Strings eu quero ver se as duas Strings são iguais porque se elas forem iguais eu tenho uma condição lá e eu posso executar um caminho do código Se não forem iguais executa o outro caminho do código PIN depende da aplicação desse caso só quero saber se nos textos são iguais Então olha só e o hard Tech está com barra
hesite Digamos que a senha seja digitar barra e esse ok então se o usuário digitar barra e esse para dentro dessa variável string aqui senha o Sr eu vou comparar o strcmp eu vou comparar o que eu tenho lá dentro de hard text com o que eu tenho depois que usuário informou a linha 15 isso aqui tudo vai ser salvo o resultado dessa comparação vai ser salvo na variável inteira Ok se o Okay for igual a zero significa que Hide Text e sem o Sr são estritamente iguais e aí eu imprimo na tela os textos
são iguais em caso contrário se o usuário digitou aqui alguma coisa que é diferente do que tá dentro do Hard teste aí o Ok vai ser diferente de zero eu vou cair no céus e os textos diferentes na tela bora ver olha só 21 texto foi e o texto que o usuário digitou aqui é diferente do que estava armazenado lá no meu código e agora é uma outra execução se o cara digitar exatamente o que tava lá armazenado anteriormente Olha só foi possível eu descobri que as Strings são iguais é muito útil em situações onde
você precisa comparar Strings são iguais ou não muito bem então que vimos na aula de hoje falamos aí dos vetores de caracteres vocês viram que tem bastante coisinha quando se fala de Strings em linguagem C A gente viu que a tal da string ela é um vetor em cada posição nós temos armazenamento de um caractere alfanumérico por vez no final de uma stringhi a máquina geralmente vai tentar embutir o caracter/0 que é o carácter nulo para que a máquina entenda que ali se encerra a streamers nós falamos do Scan F nas suas sintaxes geral os
canef ele é uma função pouco poderosa para trabalhar com Strings porque ele além de não admitir espaços ele deixa aqui aí tem que seja extrapolado no momento de uma leitura a não ser que nós usemos o skar nef em que Oi tá com os especificadores de formato mais apurado aonde a gente conseguiu colocar o tamanho máximo da leitura e também especificar que a leitura deveria ser feita até o pressionar enter admitindo portanto a leitura de espaços enfim também usamos o print F preencher essa e geralmente o especificador de formato para Strings é o próprio por
centro-oeste Vimos um outras funções de entrada e saída como Jet essa e o FGTS no qual Object S simples ele é como se fosse uma escala F geralzão ele até admite espaços mas ele não ele não trata o tamanho da string ele permite que mais dados sejam lidos do que realmente é possível armazenar na estranha então o FGTS é a função que eu mais gosto nele a gente consegue armazenar a limitando o número de caracteres então gente específica a gente passa para o FGTS o nome é o tamanho máximo da stringhi e o std1 que
é para nós lá a leitura via teclado e aí o FGTS se vira para armazenar os dados com espaço limitando realmente de acordo com de verdade o tamanho do vetor propriamente dito e ainda já reservando um espacinho para Barra zelo no final lá o FGTS na minha visão é a melhor função para imprimir caracteres na tela distingue a gente pode usar também lá o Woody esse como a gente viu anteriormente e como boa prática de programação em linguagem C quando se trata de leitura de dados via teclado especificamente lei lendo aí é fluxo lendo Strings
e até inteiros vale a pena a gente colocar o saldo é flash stdi sempre depois de uma leitura de dados ou seja chamusca nef logo na sequência F Crush chamou um GPS é flash na e chamou o FGTS chama e flecha na sequência para que sempre que a leitura via teclado ou seja feita o buffer seja reinicializado boa pelo teclado e aí a próxima leitura não de erro cuidado com isso Beleza então basicamente isso também falamos lado Bloqueio com Pagar também falamos do strcpy do STR Kate STR Helen e o strcmp que são funções da
biblioteca string em Portugal muito úteis para que a gente manicures fins especialmente as duas foi as duas funções minhas O strcpy que é para copiar o conteúdo de uma string para outra lembre-se a Springer ela não pode ser atribuída como tudo para uma outra stringhi de uma única vez e linguagens e a gente para fazer atribuição depende do STR cpy quando se trata de estranhos e também o Sr Kate quando a gente quer colar uma estranha na outra somar stream nós vamos terminar a gente usa essa função Zinho aqui Legal próxima aula falaremos aí sobre
matrizes espero que vocês tenham gostado dessa aula e a gente se vê na sequência no próximo vídeo belezinha isso é mais então a gente vai precisa de um vetor de 11 posições por exemplo porque a 11 a 11 mais ó isso tem que isso tem que ir para os erros né É Ah e outra coisa aqui é rapaz é E aí e ela também especifica música perdão e [Música]
Related Videos
Linguagem C - Aula 7 - Matrizes e Arrays multidimensionais em C (2022)
24:37
Linguagem C - Aula 7 - Matrizes e Arrays m...
Pietro Martins De Oliveira
57,790 views
Linguagem C - Aula 1.1 - Aprenda a usar o DEV C++ (2022)
29:51
Linguagem C - Aula 1.1 - Aprenda a usar o ...
Pietro Martins De Oliveira
344,643 views
Aprenda Linguagem C para iniciantes em 2 horas
1:44:59
Aprenda Linguagem C para iniciantes em 2 h...
Eduardo Casavella
59,828 views
Linguagem C - Aula 9.1 - Aprenda a criar e usar Funções e Procedimentos em C (2022)
34:00
Linguagem C - Aula 9.1 - Aprenda a criar e...
Pietro Martins De Oliveira
70,229 views
Aprenda C++ EM UM VÍDEO (Tutorial Básico de Programação)
49:47
Aprenda C++ EM UM VÍDEO (Tutorial Básico d...
Uniday Studio
170,380 views
Linguagem C - Aula 5.1 - Domine o comando while - loops/laços condicionais (2022)
18:51
Linguagem C - Aula 5.1 - Domine o comando ...
Pietro Martins De Oliveira
102,381 views
Linguagem C - Aula 8 - Estude Structs (registros) em C (2022)
29:33
Linguagem C - Aula 8 - Estude Structs (reg...
Pietro Martins De Oliveira
64,727 views
Linguagem C - Aula 6.1 - Domine vetores (arrays) em linguagem C (2022)
35:42
Linguagem C - Aula 6.1 - Domine vetores (a...
Pietro Martins De Oliveira
119,044 views
Curso de Lógica de Programação e Algoritmos - Aprenda em 4 Horas
4:17:25
Curso de Lógica de Programação e Algoritmo...
Victor Lima - Ciência da Computação
77,133 views
Linguagem C - Aula 3.2 - Aprenda a realizar cálculos em C (2022)
19:51
Linguagem C - Aula 3.2 - Aprenda a realiza...
Pietro Martins De Oliveira
105,708 views
Struct - Linguagem C
11:56
Struct - Linguagem C
Eduardo Casavella
87,184 views
PONTEIROS EM C: SE NÃO APRENDER COM ESSE VÍDEO, ESQUECE!
15:13
PONTEIROS EM C: SE NÃO APRENDER COM ESSE V...
WR Kits
56,552 views
Linguagem C - Aula 2.1 - Aprenda a mostrar mensagens em Linguagem C - printf - saída de dados (2022)
14:23
Linguagem C - Aula 2.1 - Aprenda a mostrar...
Pietro Martins De Oliveira
151,196 views
Introdução ao C - vetor de caracteres (string)
41:41
Introdução ao C - vetor de caracteres (str...
AlgoritmosAZ - C/C++
3,471 views
Linguagem C - Aula 3.1 - Entenda variáveis e atrubuição de dados - operador = em C (2022)
16:01
Linguagem C - Aula 3.1 - Entenda variáveis...
Pietro Martins De Oliveira
115,081 views
APRENDA C# BÁSICO EM 30 MINUTOS!
27:57
APRENDA C# BÁSICO EM 30 MINUTOS!
Crie Seus Jogos
188,298 views
Linguagem C - Aula 5.3 - Aprenda o comando for - loops/laços contados (2022)
12:28
Linguagem C - Aula 5.3 - Aprenda o comando...
Pietro Martins De Oliveira
72,596 views
Linguagem C - Exercício: Média entre números (2022)
25:05
Linguagem C - Exercício: Média entre númer...
Pietro Martins De Oliveira
14,203 views
Copyright © 2024. Made with ♥ in London by YTScribe.com