{"id":507,"date":"2015-08-25T19:47:32","date_gmt":"2015-08-25T22:47:32","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=507"},"modified":"2021-08-30T19:33:29","modified_gmt":"2021-08-30T22:33:29","slug":"strings-arquivos-struct","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/strings-arquivos-struct\/","title":{"rendered":"Manipula\u00e7\u00e3o de strings, arquivos e struct"},"content":{"rendered":"\n<p>Nesse exerc\u00edcio resolvido \u00e9 lida um texto de um arquivo e mostrado o texto ao contr\u00e1rio, utilizando uma <em>struct <\/em>para organizar os dados lidos do arquivo. Como s\u00e3o muitos conceitos necess\u00e1rios para o exerc\u00edcio completo, eu dividi a solu\u00e7\u00e3o em v\u00e1rias etapas, com v\u00eddeos para cada etapa.<\/p>\n\n\n\n<p>Sendo assim, a resolu\u00e7\u00e3o est\u00e1 dividida em etapas com manipula\u00e7\u00e3o de <em>strings<\/em>, arquivos e <em>struct <\/em>em C++.<\/p>\n\n\n\n<p>Inicialmente \u00e9 realizada a leitura de uma <em>string<\/em> e mostrada a palavra lida ao contr\u00e1rio. Tamb\u00e9m \u00e9 feita a leitura da <em>string<\/em> a partir de um arquivo de texto (v\u00eddeos relacionados como aquecimento para os conceitos). Por final \u00e9 feito um algoritmo que armazena os dados lidos em uma estrutura de dados definida pelo usu\u00e1rio e que divide o nome completo em nome e sobrenome (\u00faltimo v\u00eddeo).<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Aquecimento para os conceitos<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Leitura de string e mostrar ao contr\u00e1rio [C++]\" width=\"685\" height=\"514\" src=\"https:\/\/www.youtube.com\/embed\/BCFECsKyKVQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Dividir palavras de uma frase em linhas\" width=\"685\" height=\"514\" src=\"https:\/\/www.youtube.com\/embed\/pMk4Cbl6bZc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Leitura de arquivo\" width=\"685\" height=\"385\" src=\"https:\/\/www.youtube.com\/embed\/rcxBjAIDI6Y?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Resultado final<\/strong><\/h2>\n\n\n\n<p><strong>Algoritmo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c++ decode:true\"><code lang=\"cpp\" class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;string&gt;\n#include &lt;fstream&gt;\nusing namespace std;\n\nstruct spessoa {\n    string nome;\n    string sobrenome;\n};\n\nint main()\n{\n    string nomeCompleto;\n    string temp;\n    ifstream arq(\"dados.txt\");\n    int i, numPessoa = 0;\n    spessoa pessoa[2];\n    if (arq.is_open()) {\n       while ( getline(arq, nomeCompleto) ) {\n          temp = \"\";\n          for (i = 0; i &lt; nomeCompleto.size(); i++) {\n            if (nomeCompleto[i] != ' ') {\n                temp = temp + nomeCompleto[i];\n            } else {\n                break;\n            }\n          }\n          pessoa[numPessoa].nome = temp;\n          temp = \"\";\n          for (i = i+1; i &lt; nomeCompleto.size(); i++) {\n            temp = temp + nomeCompleto[i];\n          }\n          pessoa[numPessoa].sobrenome = temp;\n          numPessoa++;\n       }\n    } else {\n        cout &lt;&lt; \"Arquivo invalido!\";\n    }\n    arq.close();\n\n    for (i = 0; i &lt; 2; i++) {\n        cout &lt;&lt; \"Nome: \" &lt;&lt; pessoa[i].nome &lt;&lt; endl;\n        cout &lt;&lt; \"Sobrenome: \" &lt;&lt; pessoa[i].sobrenome &lt;&lt; endl;\n        cout &lt;&lt; \"========================\" &lt;&lt; endl;\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Ler arquivo e armazenar em uma struct\" width=\"685\" height=\"514\" src=\"https:\/\/www.youtube.com\/embed\/UTFw9SY42bY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Nesse exerc\u00edcio resolvido \u00e9 lida um texto de um arquivo e mostrado o texto ao contr\u00e1rio, utilizando uma struct para organizar os dados lidos do arquivo. Como s\u00e3o muitos conceitos necess\u00e1rios para o exerc\u00edcio completo, eu dividi a solu\u00e7\u00e3o em v\u00e1rias etapas, com v\u00eddeos para cada etapa. Sendo assim, a resolu\u00e7\u00e3o est\u00e1 dividida em etapas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3,4],"tags":[24,23,22],"class_list":["post-507","post","type-post","status-publish","format-standard","hentry","category-c","category-videos","tag-arquivos","tag-string","tag-struct"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":4,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"predecessor-version":[{"id":1166,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/507\/revisions\/1166"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}