quebrar character vector com múltiplas linhas
oi, pessoal!

quero mostrar no console um vetor de characters grande, com mais de 80 caracteres. para facilitar a leitura usei a função stringr::str\_wrap(), que quebra ele nos 80 caracteres.

para vetores com uma única linha ela funciona bem:

description <- paste("esta é uma mensagem enorme, com ma…
oi bruna,

não conheço nenhuma função que ignora o espaço mas, acho que vc pode fazer algo assim:

library(tidyverse)

multi\_line\_description <- paste("esta é uma mensagem enorme.",

"com mais de oitenta caracteres.",

"e com várias linhas…
olá victor, tudo bem?o problema do seu código é que você está declarando o vetor de strings de maneira incorreta. o certo é usar assim: char nome[5][100]; onde o primeiro par de colchetes é o ta... <p>eu tenho isso na minha essência. eu criei um wrapper stl em torno de glob para que ele retorne vetor de string e cuide de liberar o resultado glob. não é exatamente muito eficiente, mas esse código é um pouco mais legível e alguns diriam mais fácil de usar.</p><pre><code>#include &lt;glob.h&gt; // glob(), globfree() #include &lt;string.h&gt; // memset() #include &lt;vector&gt; #include &lt;stdexcept&gt; #include &lt;string&gt; #include &lt;sstream&gt; std::vector&lt;std::string&gt; glob(const std::string&amp; pattern) { using namespace std; // glob struct resides on the stack glob\_t glob\_result; memset(&amp;glob\_result, 0, sizeof(glob\_result)); // do the glob operation int return\_value = glob(pattern.c\_str(), glob\_tilde, null, &amp;glob\_result); if(return\_value != 0) { globfree(&amp;glob\_result); stringstream ss; ss &lt;&lt; "glob() failed with return\_value " &lt;&lt; return\_value &lt;&lt; endl; throw std::runtime\_error(ss.str()); } // collect all the filenames into a std::list&lt;std::string&gt; vector&lt;string&gt; filenames; for(size\_t i = 0; i &lt; glob\_result.gl\_pathc; ++i) { filenames.push\_back(string(glob\_result.gl\_pathv[i])); } // cleanup globfree(&amp;glob\_result); // done return filenames; } </code></pre> <p>encontrei uma solução para o seu problema.</p><p>baseado em <a href="https://stackoverflow.com/a/8798355/637284">this so answer</a> eu fiz um programa que usa classes de caracteres regex para procurar por letras que possam ter modificadores opcionais. ele divide sua string em caracteres simples (combinados, se necessário) e os coloca em uma lista:</p><pre><code>import java.util.*; import java.lang.*; import java.util.regex.*; class main { public static void main (string[] args) { string s="குமார்"; list&lt;string&gt; characters=new arraylist&lt;string&gt;(); pattern pat = pattern.compile("\\p{l}\\p{m}*"); matcher matcher = pat.matcher(s); while (matcher.find()) { characters.add(matcher.group()); } // test if we have the right characters and length system.out.println(characters); system.out.println("string length: " + characters.size()); } } </code></pre><p>onde <code>\\p{l}</code> significa uma letra unicode e <code>\\p{m}</code> significa uma marca unicode.</p><p>a saída do trecho é:</p><pre><code>கு மா ர் string length: 3 </code></pre><p>veja <a href="https://ideone.com/apkapn">https://ideone.com/apkapn</a> para uma demonstração funcional</p><hr><p><strong>edit</strong></p><p>eu agora chequei meu regex com todas as cartas tamil válidas tiradas das tabelas em <a href="http://en.wikipedia.org/wiki/tamil\_script">http://en.wikipedia.org/wiki/tamil\_script</a> . descobri que com o regex atual não capturamos todas as letras corretamente (cada letra na última linha da tabela composta de grantha é dividida em duas letras), então refinei meu regex para a seguinte solução:</p><pre><code>pattern pat = pattern.compile("\u0b95\u0bcd\u0bb7\\p{m}?|\\p{l}\\p{m}?"); </code></pre><p>com este padrão em vez do acima, você deve ser capaz de dividir sua sentença em cada letra tamil válida (desde que a tabela da wikipédia esteja completa).</p><p>o código que usei para verificar é o seguinte:</p><pre><code>string s = "ஃஅஆஇஈஉஊஎஏஐஒஓஔக்ககாகிகீகுகூகெகேகைகொகோகௌங்ஙஙாஙிஙீஙுஙூஙெஙேஙைஙொஙோஙௌச்சசாசிசீசுசூசெசேசைசொசோசௌஞ்ஞஞாஞிஞீஞுஞூஞெஞேஞைஞொஞோஞௌட்டடாடிடீடுடூடெடேடைடொடோடௌண்ணணாணிணீணுணூணெணேணைணொணோணௌத்ததாதிதீதுதூதெதேதைதொதோதௌந்நநாநிநீநுநூநெநேநைநொநோநௌப்பபாபிபீபுபூபெபேபைபொபோபௌம்மமாமிமீமுமூமெமேமைமொமோமௌய்யயாயியீயுயூயெயேயையொயோயௌர்ரராரிரீருரூரெரேரைரொரோரௌல்லலாலிலீலுலூலெலேலைலொலோலௌவ்வவாவிவீவுவூவெவேவைவொவோவௌழ்ழழாழிழீழுழூழெழேழைழொழோழௌள்ளளாளிளீளுளூளெளேளைளொளோளௌற்றறாறிறீறுறூறெறேறைறொறோறௌன்னனானினீனுனூனெனேனைனொனோனௌஶ்ஶஶாஶிஶீஶுஶூஶெஶேஶைஶொஶோஶௌஜ்ஜஜாஜிஜீஜுஜூஜெஜேஜைஜொஜோஜௌஷ்ஷஷாஷிஷீஷுஷூஷெஷேஷைஷொஷோஷௌஸ்ஸஸாஸிஸீஸுஸூஸெஸேஸைஸொஸோஸௌஹ்ஹஹாஹிஹீஹுஹூஹெஹேஹைஹொஹோஹௌக்ஷ்க்ஷக்ஷாக்ஷிக்ஷீக்ஷுக்ஷூக்ஷெக்ஷேக்ஷைஷொக்ஷோஷௌ"; list&lt;string&gt; characters = new arraylist&lt;string&gt;(); pattern pat = pattern.compile("\u0b95\u0bcd\u0bb7\\p{m}?|\\p{l}\\p{m}?"); matcher matcher = pat.matcher(s); while (matcher.find()) { characters.add(matcher.group()); } system.out.println(characters); system.out.println(characters.size() == 325); </code></pre> Você pode verificar o valor do caráter:



```
if ord(c) < 128 then
    // is an ascii character

``` <p>usando <a href="http://ruby-doc.org/core-1.9.3/string.html#method-i-scan"><code>scan</code></a> deve fazer o truque:</p><pre><code>string.scan(/regex/) </code></pre> olá @titah, bem-vinda à comunidade. 

normalmente um sms tem até 160 caracteres, contudo ao acrescentar um símbolo (/, [, ], €, por exemplo) estes representam dois caracteres e diminuem o tamanho máximo do sms para 140. caso sejam utilizados caracteres especiais (ç, â, ã, por exemplo) a mensagem fica reduzida a um limite de 70 caracteres.

isto não está relacionado com o tarifário tudo, mas com a própria tecnologia que é utilizada pelo sms. Você provavelmente está pensando sobre o termo **octeto** que é muitas vezes usado como sinônimo de um caractere de byte único (não-unicode). Octeto neste caso significa oito bits. Um personagem pode ser oito ou dezesseis ou mesmo mais bits, mas um octeto é sempre oito bits. <p>cria um filter e seta o encoding para utf-8, deve resolver:</p>
<pre class="prettyprint"><code>&#64;webfilter(&#34;/*&#34;)
public class characterencodingfilter implements filter {

 &#64;override
 public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws servletexception, ioexception {
 request.setcharacterencoding(&#34;utf-8&#34;);
 chain.dofilter(request, response);
 }
}</code></pre> <p><code>arrays</code> em java tem um tamanho definido, não é possível alterá-lo posteriormente adicionando ou removendo elementos (você pode ler alguns princípios básicos <a href="http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html">aqui</a> ).</p><p>em vez disso, use um <a href="http://docs.oracle.com/javase/6/docs/api/java/util/list.html"><code>list</code></a> :</p><pre><code>arraylist&lt;string&gt; mylist = new arraylist&lt;string&gt;(); mylist.add(mystring); //this adds an element to the list. </code></pre><p>obviamente, se você souber antecipadamente quantas seqüências de caracteres você colocará em sua matriz, poderá criar uma matriz desse tamanho e definir os elementos usando a posição correta:</p><pre><code>string[] myarray = new string[numberofstrings]; myarray[23] = string24; //this sets the 24'th (first index is 0) element to string24. </code></pre> <p>opa bruno, tudo bom?</p>
<p>tente incluir essa linha antes de utilizar o <code>printwriter</code> pra adicionar conteúdo à sua resposta:</p>
<pre class="prettyprint"><code>resp.setheader(&#34;content-type&#34;, &#34;text/html; charset&#61;utf-8&#34;);</code></pre>
<p>isso força a resposta a utilizar um encoding específico. outra alternativa seria incluir isso no corpo html da resposta:</p>
<pre class="prettyprint"><code>string body &#61; &#34;&lt;html&gt;&#34;&#43;
 &#34;&lt;head&gt;&lt;meta charset&#61;&#34;utf-8&#34;&gt;&lt;/head&gt;&#34;&#43;
 &#34;&lt;body&gt;&#34;&#43;seuconteudo&#43;&#34;&lt;/body&gt;&#34;&#43;
 &#34;&lt;/html&gt;&#34;;
writer.println(body);</code></pre>
<p>acredito que uma dessas opções vai resolver seu problema!</p>
<p>caso contrário, pode voltar aqui e vemos mais alternativas pra atacar!</p>
<p>um abraço e bons estudos!</p>