Ponto V!

Bruno Crivelari Sanches
Strings em CImprimir
Escrito por Bruno Crivelari Sanches

Um item que vejo muitos novatos na linguagem tendo dificuldades são as strings em C, por isso resolvi escrever alguns tutoriais e tentar resolver muitas das duvidas que vejo por ai.

Para começo de conversa strings em C praticamente não existem, o compilador tem apenas uma vaga noção do que é uma string, pois elas são uma convenção onde um vetor de caracteres terminado com 0 (zero) representa uma string. Sendo assim, podemos criar uma string usando:

#include <stdio.h>

int main(int, char **) 
{ 
    char ola[4];

    ola[0] = 'o'; 
    ola[1] = 'l'; 
    ola[2] = 'a'; 
    ola[3] = 0;

    printf(ola);

    return 0; 
} 

Este código simplesmente imprime "ola" na tela, mas note que ao inicializar ola colocamos o caracter '\ 0' (que nada mais é que o numero 0) no final do array, ele é necessário pois é a única forma do printf saber onde termina a string. Agora escrever esse código toda vez que precisarmos criar uma string é bem chato, por isso, uma das poucas coisas que o compilador C sabe sobre strings é:

#include <stdio.h>
  
int main(int, char **) 
{ 
    char ola[] = "ola";

    printf(ola);

    return 0; 
} 

Este código é idêntico ao anterior, mas escrito de uma maneira bem mais simples. Note que o compilador reconhece a string "ola" e declara um array de 4 chars e já inicializa ela com a string "ola" (incluindo o ). Também podemos escrever:

#include <stdio.h>

int main(int, char **) 
{ 
    const char *ola = "ola";

    printf(ola);

    return 0;
} 

Este código já é um pouco diferente do anterior, aqui não criamos um vetor de caracteres, e sim um ponteiro para uma região de memória constante do tipo char, trocando por miúdos, criamos um ponteiro que aponta para string. Mas onde diabos foi parar a string? O compilador alocou um trecho de memória constante na seção de dados do código (uma variável global). Por isso usamos const, pois esta string não deve ser modificada pelo código.

Contando Caracteres

Agora que já sabemos como uma string funciona em C, vamos fazer uma função para contar quantos caracteres uma string tem, assim podemos ver como o 0 no final dela é usado:

#include <stdio.h>

int contaChar(const char *str) 
{ 
    int i = 0;

    for(;str[i] != 0; ++i);

    return i; 
}

int main(int, char **) 
{ 
    char ola[] = "ola";

    printf("A string %s possui %d caracteres\n", ola, contaChar(ola));

    return 0; 
} 

Note que sempre que precisamos saber quantos caracteres uma string possui, precisamos percorrer toda a string, isso pode trazer problemas de performance em algumas aplicações e este problema ocorre com quase todas as operações com string.

Outro detalhe, não é preciso criar a função contaChar, quando precisar saber o tamanho de uma string basta usar a strlen, que é declarada no string.h:

#include <stdio.h>
#include <string.h>

int main(int, char **) 
{ 
    char ola[] = "ola";

    printf("A string %s possui %d caracteres\n", ola, strlen(ola));

    return 0; 
} 

Neste mesmo arquivo existem varias outras funções para se trabalhar com strings, é recomendável dar uma olhada na documentação antes de escrever a sua própria função para verificar se ela já não existe (alias, isso é recomendável para qualquer coisa, não apenas strings).

Comparando Strings

Agora chegamos ao ponto onde a maioria tem dificuldades, como saber se uma string é igual a outra? A idéia inicial é escrever:

#include <stdio.h>

int main(int, char **) 
{ 
    char ola[] = "ola"; 
    char ola2[] = "ola";

    if(ola == ola2) 
        printf("Iguais"); 
    else 
       printf("Nao sao iguais");

    return 0; 
} 

Se você entendeu tudo até aqui já deve imaginar qual vai ser a saída do programa acima, se não, tente ler novamente e execute o programa. Muitos ficam surpresos ao ver o programa imprimir "Não são iguais". Isto ocorre porque o if esta na verdade comparando dois ponteiros (lembre-se, arrays sem índice são ponteiros).

Então como fazer para saber se duas strings são iguais? É necessário comparar todos os caracteres das strings:

#include <stdio.h>

bool saoIguais(const char *s1, const char *s2) 
{         
    for(int i = 0;s1[i] == s2[i]; ++i) 
    {                 
        if(s1[i] == 0) 
            return true; 
    } 
    return false; 
}

int main(int, char **) 
{ 
    char ola[] = "ola"; 
    char ola2[] = "ola";

    if(saoIguais(ola, ola2)) 
        printf("Iguais"); 
    else 
        printf("Nao sao iguais");

    return 0; 
} 

Agora já sabemos como identificar se duas strings são iguais ou não, um pouco trabalhoso, mas é o único jeito. Para simplificar um pouco a vida, a biblioteca padrão já vem com uma função de comparação de strings chamada strcmp, que funciona de maneira similar a função saoIguais, a diferença é que essa função não verifica apenas se as duas strings são iguais, ela compara as duas, retornando 0 quando são iguais, -1 quando a primeira string vem antes da segunda, ou 1 caso contrário:

#include <string.h>
#include <stdio.h>

int main(int, char **) 
{ 
    char ola[] = "ola"; 
    char ola2[] = "ola";

    if(strcmp(ola, ola2) == 0) 
        printf("Iguais\n"); 
    else if(strcmp(ola, ola2) != 0) 
        printf("Nao sao iguais");

    return 0; 
}

Pronto, agora já temos uma maneira simples de verificar se duas strings são iguais ou não.

Copiando Strings

Outra dúvida comum que vemos é como fazer para copiar uma string. Quem já tentou, já deve ter descoberto que o código abaixo não funciona:

int main(int, char **)
{
    char str1[] = "abc";
    char str2[10];

    str2 = str1;

    return 0;
}

Apenas lembrando: em C/C++ não existe bem o conceito de variável do tipo string, o que temos são arrays de caracteres terminados em 0 (uma convenção). Em C/C++ não podemos copiar um array diretamente, então a solução mais lógica é simplesmente percorrer o array e copiar cada elemento. Vamos fazer isso então:

void copiaString(char destino[], char origem[], int quantidade)
{
    for(int i = 0;i < quantidade; ++i)
        destino[i] = origem[i];
}

int main(int, char **)
{
    char str1[] = "abc";
    char str2[10];

    //Note que dizemos 4, para incluir o 0 do final
    copiaString(str2, str1, 4);

    prinf("String copiada: %s\n", str2);

    return 0;
}

A função copiaString acima resolve o problema, mas tem uma série problemas:

  • O usuário precisa informar o tamanho ou a quantidade a ser copiada
  • Se o usuário passar o tamanho errado, a função vai fazer coisa errada
  • Se o usuário informar um tamanho pequeno, a função não vai incluir o 0 no final da string, quebrando assim a convenção de strings da linguagem.

Vemos que o grande problema é quanto ao tamanho, mas precisamos realmente saber o tamanho? Lembre-se que strings em C sempre terminam em 0 e já vimos no inicio do artigo como podemos tirar proveito disso para contar caracteres, porque não fazer o mesmo com a cópia? Um exemplo de como fazer:

void copiaString(char destino[], char origem[])
{
    for(int i = 0; origem[i] != 0 ; ++i)
        destino[i] = origem[i];
}

int main(int, char **)
{
    char str1[] = "abc";
    char str2[10];

    copiaString(str2, str1);

    prinf("String copiada: %s\n", str2);

    return 0;
}

Muito mais simples não? Mas porque re-inventar a roda? Podemos simplesmente usar a função strcpy da biblioteca padrão:

int main(int, char **)
{
    char str1[] = "abc";
    char str2[10];

    strcpy(str2, str1);

    prinf("String copiada: %s\n", str2);

    return 0;
}

A ultima versão da função “copiaString”, assim como strcpy sofrem de alguns problemas, sendo o principal: se a string de destino não for grande o bastante para armazenar a string original, vai ocorrer uma invasão de memória, por esse motivo, não se recomenda mais usar várias das rotinas de string do C, pois muitas sofrem desse risco. Muitos compiladores fornecem versões “seguras” dessas funções, mas que não fazem parte do padrão.

Por fim, a versão de copiaString apresentada aqui é a versão mais didática, sendo que o mais comum é encontrar a implementação na forma como abaixo:

void copiaString(char *dest, const char *src)
{
    while(*dest++ = *src++);
}

A interpretação do código acima, fica como exercicio ao leitor.

E finalmente, a recomendação que faço, em vista dos possíveis problemas de strings em C é: se precisa de strings, utilize a classe std:: string do C++.

No próximo tutorial, vamos dar uma olhada em mais algumas operações com strings em C.


Comentários (132)
  • Gustavo  - struckt
    avatar

    gostaria saber como compara a string em estrutura de dados por exemplo. digamos que eu queria registrar so um tipo de sobre nome por exemplo.

    struckt {

    char nome
    char sobrenome

    } dados;

  • Vinícius Godoy de Mendonça
    avatar

    strcmp(dado1.nome, dado2.nome);

  • Bruno Crivelari Sanches  - re:
    avatar

    Olá Gustavo,

    o processo é o mesmo que o Vinícius citou:

    Vinícius Godoy de Mendonça Escreveu:
    strcmp(dado1.nome, dado2.nome);

    Detalhe que não tem diferença no caso da struct, você os chars como se fosse usar em qualquer outro lugar, mas tem que especificar ele usando o ".".

    Surigo dar uma lida no material básico de C/C++, já viu nosso roadmap:
    Roadmap C++ ??

    T+

  • Felipe Prado  - muito bom esse artigo.
    avatar

    (y)

  • Júnior, D. Eskelsen,  - Parabéns
    avatar

    (...)

    É muito bom ter pessoas que compartilham o
    conhecimento ajudando toda a galera que
    está em algum furdunço nas linhas de código. :lol:

    Abraços

  • ts  - ajuda
    avatar

    ola, queria imprimir uma string ao contrario, do genero o utilizador escreve ola e na tela aparece alo. agradecia uma resposta

  • Bruno Crivelari Sanches
    avatar

    Ok, mas qual sua dúvida?

  • Anônimo
    avatar

    oi td bem,ta ai?

  • tiagusilva  - ajuda
    avatar

    ola, queria saber como se faz um programa em c.
    uma piramide assim:
    1
    121
    12321
    1234321
    123454321

    aguardo uma resposta urgente

  • Vinícius Godoy de Mendonça
    avatar

    Use 2 fors.

  • Anonimo
    avatar

    Naverdade nem 2 for precisa um so ja fa o serviço;

    double a, b=1;
    for(a=0;a

  • Cara doido  - re: Vinícius Godoy de Mendonça
    avatar
    Vinícius Godoy de Mendonça Escreveu:
    Use 2 fors.


    Como assim? 2 for's?

  • tiagusilva
    avatar

    como?

  • Vinícius Godoy de Mendonça
    avatar

    Isso cabe à você estudar. Não fazemos lição de casa. Principalmente as urgentes. ;)

  • gafanhoto  - resposta
    avatar

    basta fazer um programa para multiplicar 1:

    ex. 121 = 11*11 = 11²
    12321 = 111*111 = 111²

    se ligou???

  • Anônimo
    avatar

    queria saber qual é o codigo c++ para determinar o comprimento de um string de um arry

  • Bruno Crivelari Sanches
    avatar

    Basta usar função strlen da biblioteca padrão. Não existem diferenças em C++ quanto a strings, a não ser pelo fato que em c++ existe uma classe string na biblioteca padrão que pode e deve ser usada em substituto as strings em C.

    T+

  • lucy correia
    avatar

    queria saber qual é o codigo c++ para determinar o comprimento do string de um array?

  • Bruno Crivelari Sanches
    avatar

    O primeiro sub-tópico do artigo trata exatamente desse problema: "Contando Caracteres", com um código exemplo e ainda menciona o uso de strlen.

    T+

  • Anônimo
    avatar

    obrigado pela ajuda.

  • Bolado  - PESSOAL ME AJUDEM POR FAVOR!!!
    avatar

    :evil: Galera!! sou novato em C, me ajudem ae... em uma string como faço para saber quantos pares de ss e rr existem...

  • Vinícius Godoy de Mendonça
    avatar

    Você usa usa um for e conta. Quebre um pouco a cabeça. Nós não iremos fazer sua lição de casa. ;)

  • Bolado  - Afff!!
    avatar


    Pow!! fato... quebrei a cabeça... vlw

  • Matheus
    avatar

    Como faço pra se caso eu declarar uma string e pedir pro usuario digitar o valor dela ele digitar algo maior que a string, sendo que ele tem que possuir um tamanho fixo. Em outras palavras... Tenho que usar um vetor de tamanho fixo. Tenho que pedir pro usuario entrar com a string e armazena-la. Tentei por ponteiro, mas não consigo restringir o tamanho dela depois, e se for por vetor ele estrapola o valor declarado e dá erro no programa... Não achei outra maneira... Alguma ideia?

  • Bruno Crivelari Sanches
    avatar

    use fgets com stdin: http://www.cplusplus.com/reference/clibrary/cstdio/fgets/

    T+

  • josé portela  - adorei "não fazemos lições de casa".
    avatar

    Sou professor de linguagem de programação no IFCE e uma das minhas grandes dificuldades é a avaliação, seja em forma de trabalho ou de prova individual, há sempre o risco de o aluno pegar o trabalho feito por outra pessoa passado a ele por meio eletrônico.

    Adorei a resposta do Vinicius "não fazemos lições de casa, principalmente as urgentes".

    O aluno não estudou para a prova ou não fez o trabalho e de última hora "urgente" pede alguém pra fazer por ele, pela internet, a resposta vem rapidinho e ele tira uma nota ilusória.

    parabéns!

  • Karlloos  - Dúvida em pegar cada caracter da string
    avatar

    Olá, queria saber como pegar cada caracter individualmente de uma matrix de strings ela está declarada assim. char string[tam][tam][tam], dai por exemplo de armazeno um valor em um determinado indice como faço pra quebrar esse valor em cararteres?

  • Bia
    avatar

    olá, gostaria de saber como faço para comparar caracteres de duas strings e retornar a posição da primeira string onde ocorre qualquer caracter da segunda string.

  • Anônimo
    avatar

    A função SaoIguais que é mostrado no artigo já faz praticamente isso, basta adaptar.

  • Luis  - duvida
    avatar

    Como posso facer que strcmp funcione com palavras que tem acento circumflexo, ex. lés?

    Stou trabalhando em um programa que faiz comparaçoes entre 2 verbos, o primeiro que o programa mesmo lé de un arquivo, o segundo, o que o usuario escreve...

    Ex, c++ lê: lΩs , mas eu escrevo: lês... então não está trabalhando...

    agradeço sua ajuda.

  • Anônimo
    avatar

    Tem que se usar wstring ou wchar. Os caracteres ascii não conseguem representar todas as letras, ainda mais com acentuação, então é preciso ir além, usando unicode.

    O problema que já começamos então a entrar numa área dependente de plataforma e o pior que não tenho muita experiência com uso de wchar e unicode.

    Uma explicação razoável sobre o assunto:http://stackoverflow .com/a/3019339/440867

    Outro detalhe, se você estiver usando visual, nas propriedades do projeto você pode configurar o tipo de caractere a usar.

  • ViniGodoy  - Leitura
    avatar

    Recomendo fortemente a leitura: http://www.joelonsoftware.com/articles/Unicode.html

  • Luis  - Obrigado!
    avatar

    Fico muito agradecido, vou seguir as suas recomendações e depois volto para contar voçês o que aconteçe.

    Sou da Costa Rica, e estou trabalhando com Dev C++ em una aplicação de console para memorizar verbos e aprender gramatica portuguesa!

  • Luis
    avatar

    Fico muito agradecido, vou seguir as suas recomendações e depois volto para contar voçês o que aconteçeu.

    Sou da Costa Rica, e estou trabalhando com Dev C++ em una aplicação de console para memorizar verbos e aprender gramatica portuguesa!

  • Lucas
    avatar

    Estou tentando escrever duas strings no mesmo vetor, mas só estou pegando lixo.
    O que eu poderia fazer
    char i[]="Lucas";
    char t[]= "Carneiro ";
    char n[15];
    int k=0;
    int s;
    for (s=0;s9)
    {
    n= k;
    k=k+1;
    }
    }
    printf ("O valor junto %s\n",n);
    system("PAUSE";);
    return 0;

    Obrigado,

  • Anônimo
    avatar

    Esse código não tem sentido, poste no codepad.org

  • johnny  - como apagar uma variavel char ?
    avatar

    estudo programação pela Internet mesmo e gostaria de saber:
    por exemplo, eu preencho uma variavel com um nome e em outro momento da execução quero apagar, como fazer ?

  • Anônimo
    avatar

    O apagar é algo bem relativo, geralmente não tem muita utilidade e não existe o "apagar", o que se faz é preencher a variável com outro valor.

    Se for uma string com array de char, basta colocar um 0 na primeira posição.

  • MICHEL  - strings
    avatar

    Bom dia,
    Gostaria que vc post um programa em que o mesmo faça a leitura de um arquivo txt, e identifique uma STRING, ou seja, encontre um nome em dentro de um texto.
    Se for Preciso eu posso postar um programa que faz a contagem porém não identifica a palavra se existe ou não no texto.

    Bobrigado!!!

    E Parbens pelo artigo muito bom.

  • Anônimo
    avatar

    Obrigado, mas isso me parece trabalho de faculdade e não faço trabalho dos outros.

  • Michel
    avatar

    Está enganado, mas não tem problema se não pode me ajudar.
    Este é um projeto para identificar uma imagem e será para uso pessoal.
    eu tenho o corpo do programa mas é com char e não com string.
    Mesmo assim obrigado!!!

  • Anônimo
    avatar

    Se você tiver uma duvida especifica, vou ajudar e outros também. Mas fazer o programa todo é mais difícil.

  • Michel
    avatar

    Eu gostaria de saber, como posso alterar para ele identificar uma string, no lugar da char.
    E somente imprimir se for a string certa.

    #include
    #include

    main ()
    {
    FILE *in, *out;

    char c ;
    char z;


    in = fopen("dados.txt","r";);
    if(in==NULL){

    printf ("erro no arquivo dados.txt\n";);

    }
    out = fopen("resultado.txt","w";);
    if(out==NULL)
    {
    c = getchar(0);
    putchar('z');
    scanf ("%s", &c);
    printf ("Este Programa Foi Criado em C\n";);
    printf ( "%s", 'z');
    printf ( "z";);
    }

    fclose( in );
    fclose( out );
    }

  • Michel
    avatar

    No caso, a imagem sera transformada em uma string, e só se for a STRING certa o programa irar imprimir, ou seja, identificará a imagem.
    Eu sei como transformar, porém não consigo fazer a identificação da STRING dentro de um texto.
    Acho que este programa seria a maneira mais facil, porém também posso utilizar," arqLer.open" mas também não sei como fazer para imprimir e criar um outro arquivo.txt .
    exemplo:
    //LENDO
    if(option == 2){
    string nome;
    ifstream arqLer;//variavel de leitura
    arqLer.open ("MeuDados.txt";);//abrindo arquivo
    arqLer>>nome;
    if(!arqLer.fail()){
    cout

  • Anônimo
    avatar

    Esta difícil entender o que você quer fazer.

    Mas divida a coisa em passos lógicos:
    - abrir o arquivo
    - ler uma linha do arquivo (função fgets do comentário anterior)
    - procurar a palavra na linha de texto (veja a função strstr)

  • Michel
    avatar

    Obrigado!!!

    Já me ajudo Bastante Quando eu terminar eu posto para outros colegas.

  • herman  - biblioteca
    avatar

    gostaria de saber qual a biblioteca que eu devo usar para usar funções de atraso?tipo delay.

  • Anônimo
    avatar

    Em C padrão não existe, tem que usar alguma biblioteca especifica, como o Sleep na win32 ou SDL_Delay na SDL.

    Mas é um jogo? Se sim, raramente um Delay é util em jogo.

  • Anônimo
    avatar

    Olá bruno,muito bom esse tutorial, ótimo mesmo. Mas eu tenho uma dúvida. Como faço pra armazenar uma substring em outra variável char.
    tipo:
    char[]="ola"
    char ch;

    ch = substring(0,1,ola)

  • Anônimo
    avatar

    Olá!

    Um char não pode armazenar uma string, afinal ele armazena um única caractere e uma string em C se não for vazia, vai precisar de pelo menos dois char para armazenar também o 0 do final.

    Então você tem que criar um array de char que tenha tamanho suficiente para armazenar a substring além do 0 no final.

    Então você pode usar strncpy para copiar a substirng para a outra stirng, nesse site tem exemplos: http://www.cplusplus.com/reference/cstring/strncpy/

    T+

  • bianca  - Função copiaString
    avatar

    Boa tarde,

    Gostaria de saber como eu escrevo a função copiaString que fa a copia de uma string para outra,e que tem o memo comportamento da função strcpy?

  • Anônimo
    avatar

    Compare a função copiaString com o que esta escrito na documentação da strcpy (que você acha em diversos sites pela internet a fora) e basta modifcar para deixar idênticas.

  • Flavia Garcia Renales  - Função que simplifica o nome
    avatar

    Olá, Poderia me ajudar?
    Não estou conseguindo elaborar uma função em c do tipo:

    char * reduznome (char **ss)

    que por exemplo, pega um nome Flavia Garcia Renales e imprime apenas Flavia Renales, concatenando a primeira e a ultima palavra da string.

    Considerando também que possa existir o caso de existir nome do tipo João da Silva. E aí nesse caso teria que imprimir assim mesmo o nome.

    Poderia me ajudar?

  • Anônimo
    avatar

    Posso, mas qual a sua duvida?

  • crislanio  - duvidas básicas em c
    avatar

    Criar um programa capaz de ler uma frase de 4 palavras, sendo que cada palavra deve ser
    lida em uma variável string diferente. Depois os valores das variáveis devem impressos de
    modo que a ordem das palavras na frase fique de trás para frente?

    tentei fazer da seguinte maneira,mas deu erro !!! me ajudem...
    #include

    char p1[10],p2[10],p3[10],p4[10];
    int main()
    {
    printf("Informe quatro palavras :";);
    printf("Informe a 1° palavra :";);
    scanf("%[^\n]s",p1);
    printf("Informe a 2° palavra :";);
    scanf("%[^\n]s",p2);

    printf("Informe a 3° palavra :";);
    scanf("%[^\n]s",p3);

    printf("Informe a 4° palavra :";);
    scanf("%[^\n]s",p4);


    printf("%s %s %s %s",p1,p2,p3,p4);
    return 0;
    }

  • Anônimo
    avatar

    Qual o erro? Para ler palavras, basta usar o %s, ele para sempre que encontrar um espaço, não precisa do [^\n].

  • marcos aurelio
    avatar

    como fazer para verificar se um vetor de 10 posições tem numeros inguais e imprimilos???

  • Anônimo
    avatar

    Basta percorrer o vetor comparando os números e se algum for diferente, imprimir a mensagem. Se você tiver uma dúvida posso ajuda-lo melhor.

  • Anônimo  - Dúvida
    avatar

    Como eu faria para imprimir uma frase inteira de trás pra frente?

  • Anônimo
    avatar

    Basta inverter a string e imprimir, qual a sua duvida?

  • Leonardo  - Dúvida sobre string em C
    avatar

    Ae pessoal, sou novo na área e fiquei com uma dúvida sobre o que foi postado até agora. Seguinte, pelo que entendi string em C vai ser um vetor de 'x' posições, correto? Vc declara como tipo "char" e define o tamanho desse vetor...no caso exemplificado foi declarado da seguinte forma (definindo um valor fixo para o vetor):

    char ola[] = "ola";

    Se eu quiser por exemplo, só printar na tela um nome qualquer (informado pelo usuário) que vai estar em uma variável 'nome', sem a necessidade de usar a estrutura de "for" para contar cada caractere do vetor, isso é possível em C?

    Pode parecer uma pergunta "besta" mas lembre-se que estou apenas começando...rs :P

  • ViniGodoy
    avatar

    Sim, a função printf recebe como parâmetro o formato da String e um ponteiro para o primeiro caracter.

    Como toda string termina em \0, a função sabe até onde deve imprimir sozinha.

  • Leonardo
    avatar

    Valeu pela dica ViniGodoy!! Consegui aqui, não sei se fiz da forma mais correta, mas funcionou...

    Declarei a variável char nome [50], usei o scanf pra pegar o nome que o usuário informar e depois passei o formato "%s" pra imprimir a variável nome pelo printf. Li algo sobre usar a função gets() pra pegar o valor que o usuário informar, qual seria a diferença entre gets() e scanf ()?? Se puder esclarecer agradeço!

    Valeu! :D

  • ViniGodoy
    avatar

    Experimente ler coisas com espaços usando as duas funções. No scanf, o espaço é considerado um terminador. No gets, não.

    O ideal mesmo é usar a classe std::string e o cout do C++, que é mais seguro.

  • Leonardo
    avatar

    É percebi, não imprime o sobrenome por conta do espaço que vem antes. A princípio deixarei o gets mesmo, mas vou dar uma estudada no std::string que vc mencionou.

    Valeu pela ajuda cara!!

  • diego  - Eu quero comparar o array
    avatar

    eu estou com eu estu com esse problema da faculdade, algúem pode me ajudar06. Construa um programa em linguagem C que declare um

    array de caracteres com 20 posições. A seguir deverá ser solicitado ao usuário que digite valores

    para preencher cada uma das posições do array. Feito isso, o programa deverá solicitar que o

    usuário digite uma sequência de três letras e informar quantas vezes essa exata sequência

    aparece dentro do array.

  • Anônimo
    avatar

    Não fazemos lições de casa. Se tiver uma dúvida pontual iremos ajudar, postar o enunciado não é dúvida, é pedir para alguém fazer.

  • crislanio  - bingo 5 cartelas
    avatar

    o que eu teria que fazer pra que ete codigo tivesse 5 cartelas geradas com valores aleatorios... e gerasse um ou mais ganhadores

    #include
    #include
    #include
    #include

    void preenche (int a[5][5]){

    int aux[75],k,i,j;

    for(k=1;k

  • Anônimo
    avatar

    Use um serviço como codepad.org para postar código e inclua aqui o link.

    Use rand para gerar as cartelas, só tomando cuidado para não repetir os números em uma mesma cartela.

    T+

  • Anônimo  - re: bingo 5 cartelas
    avatar
    crislanio Escreveu:
    o que eu teria que fazer pra que ete codigo tivesse 5 cartelas geradas com valores aleatorios... e gerasse um ou mais ganhadores

    http://codepad.org/Xl7dlN60
  • Anônimo
    avatar

    Comece indentando o código, facilita a sua vida e de quem vai ler ele.

    crie uma rotina "gera_cartela", passe para ela como parâmetro a cartela.

    Dentro dela faça um loop percorrendo todas as células da cartela usando a função rand para gerar um número para cada célula.

    Toda vez que você gerar um número, percorra os elementos anteriores da cartela para checar se o número já não foi sorteado, se sim, gere outro número. Repita o processa até gerar um número todo e até preencher toda a cartela.

    T+

  • fanini  - string
    avatar

    queria saber se é possível separar os números, seja em qual posição estiverem , das estrings ?
    se existe função pra essa tarefa?

    explo v[]="joao wer 12 kdk 34"

  • Anônimo
    avatar

    Da uma olhada na documentação da strtok.

  • wilson alves  - Utilizar strngs no meu projeto
    avatar

    Boas eu tenho um projeto com dois sensores de corrente a enviar os valores de corrente tenho tensão e calculo a potencia para um lcd 20x4. O que é que pensei em fazer, quero medir valores instantaneos e valores hora então pus um botão para cada vez que lhe carrego muda de tela ou para valores hora ou para valores instantaneos. O meu problema é que os valores começam a piscar no lcd da forma como fiz o código e não quero que isso aconteça aconselharam me a utilizar string mas não sei como utilizar criei dois arrays parapoder utilizar o switch case .envio o código a baixo:

    //--------------------Definir LCD------------------------------------------------------------------- ---------------------------
    #include

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Pinos digitais onde o lcd esté conetado 12, 11, 5, 4, 3, 2

    //-----------------Definir mudança do LCD------------------------------------------------------------------- -------------------
    #define SWITCH 10 //Ligação do Switch no pino digital 10
    #define NUM_MENUS 2 //exemplo, 2 menus...
    unsigned char var_menus = 0;
    unsigned char encrava = 0;
    unsigned long refresh = 0;

    //------------------Defenir variáveis para sensor de 45A------------------------------------------------------------------- -----
    unsigned long antes45 = 0;
    int valor45 = 0;
    long corrente45 = 0;
    float minimo45 =0; //Valor minimo do map()
    float maximo45 =0; //Valor máximo do map()

    //------------------Defenir vaiáveis para sensor de 100A------------------------------------------------------------------ -------
    unsigned long antes100 = 0;
    int valor100 = 0;
    float corrente100 = 0;
    float minimo100 =0; //Valor minimo do map()
    float maximo100 =0; //Valor máximo do map()


    //------------------Defenir variáveis para sensor de 235A------------------------------------------------------------------ -------
    unsigned long antes235 = 0;
    int valor235 = 0;
    float corrente235 = 0;
    float minimo235 =0; //Valor minimo do map()
    float maximo235 =0; //Valor máximo do map()

    //-------------------Definir variáveis de tensão(V)------------------------------------------------------------- -------------------
    int TAC = 230; //Tensão de AC
    int TRC = 12 ; //Tensão do regulador de Carga
    int TBAT = 12; //Tensão das baterias

    //------------------Definir Variáveis de Potência(W)----------------------------------------------------------- --------------------
    int PAC ; //Potência em AC
    int PRC ; //Potência no regulador de carga
    int PBAT; //Potência nas baterias
    /*
    //---------------Declarando os Sensores de temperatura----------------------------------------------------------- ------------------
    int SENSOR1 = A0; // Sensor 1 está no pino Analógico 0
    int SENSOR2 = A1; // Sensor 2 está no pino Analógico 1
    int SENSOR3 = A2; // Sensor 3 está no pino Analógico 3

    float A = 0; // Sensor 1
    float B = 0; // Sensor 1

    float C = 0; // Sensor 2
    float D = 0; // Sensor 2

    float E = 0; // Sensor 3
    float F = 0; // Sensor 3
    */
    //-------------------------------------------------------------------- --------------------------------------------------------------

    void setup(){
    lcd.begin(20, 4); // LCD 20x4
    Serial.begin(9600); // Saída para o Serial Monitor
    pinMode(SWITCH, INPUT); //Switch funciona como entrada
    }


    /*
    //----------------------Sensor de Temperatura 1 ---------------------------------------------------------------------- -------------
    {
    lcd.setCursor(0, 0); // Sensor de temperatura 1 Coluna 0 linha 0
    lcd.print("T1-";); // Sensor de temperatura 1
    lcd.setCursor(3, 0...

  • Anônimo
    avatar

    Use um serviço como codepad.org para postar código.

    "Mas não sei como usar".

    Isso é muito vago, este artigo explica como funcionam strings em C. Qual a sua dúvida?

  • wilson alves  - re: final
    avatar

    Eu sou novo no mundo arduino e nunca utilizei ums string disseram me que poderia resolver neste caso de o lcd piscar a cada refresh eunão sei bem é onde colocar a string

  • Anônimo
    avatar

    O foco do artigo aqui é strings, não arduino, vai ter que procurar um fórum dedicado a este.

    Se for uma dúvida quanto a strings podemos ajudar, detalhes de arduino já complica.

  • Anônimo
    avatar

    Olá boa tarde!

    Estou com um pequeno problema neste código :

    Eu sei que o erro está aqui, mas não sei como resolver : char nomeFuncionario;

    #include
    #include
    #include


    main() {

    int salarioFixo = 650;
    char nomeFuncionario;
    float vendaTotalMes, salarioFinal;

    printf("Informe o nome do funcionário!\n";);

    scanf("%c", &nomeFuncionario);

    printf("Informe o total de venda efetuadas no mes. \n";);
    scanf("%f", &vendaTotalMes);

    salarioFinal = (vendaTotalMes * 1.15)+ salarioFixo;


    printf("%c Seu salário com a comissão %f ", nomeFuncionario, salarioFinal);


    system("pause > null";);
    }

  • Anônimo
    avatar

    Provavelmente porque você esta querendo ler o nome do funcionário e esta usando apenas um caractere. O artigo explica exatamente como usar strings, que são a solução do seu problema.

  • Allan
    avatar

    "[...] se a string de destino não for grande o bastante para armazenar a string original, vai ocorrer uma invasão de memória, por esse motivo, não se recomenda mais usar várias das rotinas de string do C, pois muitas sofrem desse risco. Muitos compiladores fornecem versões “seguras” dessas funções, mas que não fazem parte do padrão. [...]".

    Em C++ não tem esse risco?

  • Anônimo
    avatar

    Se você utilizar a std::string e outras técnicas modernas não, mas se continuar usando as rotinas do C, os problemas são os mesmos.

  • tais  - string que compara cada caracter
    avatar

    entao preciso de um programa em que o usuario digita 2 palavras e a string deve comparar cada letra pra saber se essas duas palavras sao anagramas... uso o strcmp mas apnas na palavra toda e mesmo digitando por exemplo roma a amor eladiz que nao é anagramaporis sao palavras diferentes..alguem me ajuda?

  • Anônimo
    avatar

    O artigo mostra como manipular strings, como contar caracteres e até mesmo como comparar strings. Qual a sua dúvida?

  • Crislanio Macedo  - Desenhos em C
    avatar

    como fazer para um programa em c ficar com os desenhos

    # #
    ## ##
    ### ###
    ## ##
    # #
    ou seja se cado digite um aparecerá...
    # #
    # # digita 2 aparecera

    # #
    ## ##
    ## ##
    # #

    fiz o codigo mas não to sabendo juntar-lo ....me ajudem !!!

    #include
    /**
    * S_Esquerda(tam);
    I_Esquerda(tam);
    S_Direita(tam);
    I_Direita(tam);
    * */
    void S_Esquerda(int tam){
    int exe;
    int e=1;
    exe=1;
    int tam2=tam;
    int i=0;
    while(e

  • Anônimo
    avatar

    oi gostria de fazer uma matriz de stringuis para fazer o seguinte

    vendedor 1 1 2 3 4 5 6 6
    vendedor 2 1 2 3 4 5 6 6
    vendedor 3 1 2 3 4 5 6 6

    so que n to conseguindo colocar os nomes na matriz sera q alguem pode me ajudar

  • Bruno
    avatar

    Mas qual a dúvida? Como esta seu código?

    T+

  • Anônimo
    avatar

    Eu quero fazer uma estrutura que faz a matricla de alunos dando-os numeros de forma crescente, e apartir desse numero consigo mandar o programa buscar os dados do aluno, como o nome, o curso, amensalidade paga e o proprio numero. me ajudem!!!!

  • Anônimo
    avatar

    Ajudar ajudamos, mas qual a sua dúvida? Enunciado de trabalho não é dúvida.

  • Anônimo  - String com int
    avatar

    ola, estou tentando juntar em uma unica string que possua numeros e string
    No c# é feito da seguinte maneira

    int valor = 0;

    string texto = " valor = " + valor;

    Como eu faço isso no C++?

    um exemplo errado para entender o que eu pretendo fazer

    const char *msg = "valor = " + valor;

  • Anônimo
    avatar

    C++ não faz a conversão automática como em C#. Você precisa primeiro converter o número para uma string e depois concatenar essa string com a outra string.

    O segundo artigo fala um pouco mais de strings e números: http://pontov.com.br/site/index.php/cpp/46-conceitos-basicos/84-string s-e-numeros

    Em C++ uma alternativa é usar std::stringstream.

  • bia  - Resolução???
    avatar

    Faça uma função em C que receba uma texto (string) e
    um caractere como parâmetros. A função deverá separar cada palavra do texto que
    esteja delimitada pelo caractere passado como parâmetro e gerar um vetor de inteiro
    que deverá conter o índice onde a palavra inicia e o tamanho da palavra. Após a
    geração do vetor de inteiros, a função deverá imprimir cada uma das palavras
    encontradas.
    A saída do seu programa deverá ser como o exemplo abaixo, caso o texto de entrada
    seja “Universidade#de#Fortaleza” e o caractere ‘#’:
    palavra 0 Universidade
    palavra 1 de
    palavra 2 Fortaleza

  • Vinicius
    avatar

    Se for rodar esse programa em modo texto, a resolução será 80 colunas por 25 linhas...


    PS: Não fazemos lição de casa.

  • Marcos
    avatar

    Olá, gostaria de saber se é recomendável usar ponteiros para char, em vez de declarar vetores de char. Por exemplo, em vez de declarar char nome[50] para armazenar um nome inserido pelo teclado, utilizar char *nome. Testei e funcionou, mas em C sabe como é, não sei se é correto ou se funcionou por acaso. Posso usar essa prática sempre? obrigado.

  • Anônimo
    avatar

    Olá,

    se você apenas declarou o ponteiro e jogou valores no endereço que ele aponta, funcionou por acaso.

    Tipo, se fez algo como:

    Código:

    int main(int, char **)
    {
    char *ptr;

    gets(ptr);
    }

    funcionou por acaso. A primeira coisa é entender o que é um ponteiro? Uma variável que aponta para um endereço de memória.

    E quando você cria ela, para onde ela aponta? Para qualquer lugar, pois C/C++ não inicializam variáveis. Logo a sua string foi armazenada em um local aleatório da memória e pode ter estragado algo.

    T+

  • Marcos
    avatar

    Olá anônimo, obrigado pela resposta. Era o que eu desconfiava mesmo, até achei estranho funcionar.
    Se entendi bem, não há problema no caso de declaração de constante string com ponteiros (char *nome = "Marcos";), pois a memória para ela é alocada em tempo de compilação, é isso?

  • Anônimo
    avatar

    Exato, o compilador cuida dela para você.

  • Lucas
    avatar

    Se eu quisesse comparar as strings mas em vez de eu ja pre estabelecer, o executador estabelecesse e o programa diria se estaria certo.... nao consigo declarar a variavel para que o executador entre com a string, teria como me ajudar?

  • Anônimo
    avatar

    Se mostrar o código com erro facilita...

  • THIAGO ROMULO  - Quebra de linha automática
    avatar

    Boa tarde.

    Gostaria de saber como fazer a quebra de linha automática, por exemplo:

    String (FAZER A QUEBRA DE LINHA AUTOMATICA)

    Se usarmos a função srtlen retornará 34.

    Mas o Static Text que estou utilizando no supervisório da Siemens WinCC vai ter apenas 20 se falando em caracter.

    Gostaria de comparar a String, se ela for maior que 20 então pular para próxima linha o restante por exemplo

    String (FAZER A QUEBRA DE LINHA AUTOMATICA)

    Quero mostrar

    FAZER A QUEBRA DE LI
    NHA AUTOMATICA

    MAS TAMBÉM GOSTARIA DE VERIFICAR ONDE TEM O ESPAÇO PARA FICAR ASSIM

    Quermo mostrar

    FAZER A QUEBRA DE
    LINHA AUTOMATICA


    Agradeço a aguardo

  • Anônimo
    avatar

    Comece percorrendo a string e quando chegar a 20 caracteres, insira a quebra de linha. Um jeito fácil é que ao invés de "inserir", vá copiando a string para outra string e quando tiver copiado 20 caracteres, adicione a quebra de linha.

    Com isso funcionando, modifique o programa para memorizar quando foi o ultimo espaço em branco e faça a quebra nele.

    No artigo tem exemplos de como percorrer a string, só adicionar as condições que você precisa.

  • Anônimo
    avatar

    #include
    using namespace std;

    int main(){
    char car;
    char letra[30];
    int cont,i;
    cont=0;
    for(i=0;i

  • Anônimo  - re:
    avatar

    #include
    using namespace std;

    int main(){
    char car;
    char letra[30];
    int cont,i;
    cont=0;
    for(i=0;i

  • petter show  - Ola
    avatar

    Adoro este site. estive no curso de logica de programaçao mas nao terminei e adoro muito programacao e tambem quero aprender com vocês

  • petter show  - string e controlos
    avatar

    oi pessoal sou principiante em c e estou a trabalhar com dev-c, eu pretendo elaborar um formulario que que contem os dados pessoais e profissionais de um funcionario. Usando muitos printf o programa fica extenso entao eu quero que ajudem-me neste caso, usando string e umas das estruturas FOR, WHILE, IF, ou SWITCH.

    AGRADECERIA...

    /*Modelo de identificacao
    de empregados
    */
    #include
    #include
    #include

    int main(int argc, char *argv[])
    {
    char nm[50], pai[50], sx[10], mae[50];
    char bi[15], ntr[20], ncnld[20], ec[10];
    int tlfn[10];
    printf("\n\n\t\t\t CADASTRO PROFISSIONAIS \t\t\t\n\n";);
    printf("Inserir os dados:\n";);
    printf("Nome:\n";);
    scanf("%s", nm);
    //printf("Apelido:\n";);
    //scanf("%s", ap);
    printf("Sexo:\n";);
    scanf("%s", sx);
    printf("Nome do Pai:\n";);
    scanf("%s", pai);
    printf("Nome da mae:\n";);
    scanf("%s", mae);
    // printf("Data de Nascimento:\n";);
    //scanf("%s", dn);
    printf("Numero do BI:\n";);
    scanf("%s", bi);
    printf("Natural:\n";);
    scanf("%s", ntr);
    printf("Nacionalidade:\n";);
    scanf("%s", ncnld);
    Printf("Estado Civil:\n";);
    scanf("%s", ec);
    //printf("Endereco Residencial:\n";);
    //scanf("%s", edrc);
    printf("Telefone:\n";);
    scanf("%d", &tlfn);

    printf("\n\n\t\t\t DADOS INSERIDOS \t\t\t\n\n";);
    printf("Nome:%s", nm);
    printf("Sexo:%s", sx);
    printf("Nome do pai:%s", pai);
    printf("Nome da mae:%s", mae);
    printf("Numero do BI:%s", bi);
    printf("Natural:%s", ntr);
    printf("Nacionalidade:%s", ncnld);
    printf("Estado Civil:%s", ec);
    printf("Telefone%s", tlfn);




    system("PAUSE";);
    return 0;
    }

  • petter show  - formulario
    avatar

    oi pessoal sou principiante em c e estou a trabalhar com dev-c, eu pretendo elaborar um formulario que que contem os dados pessoais e profissionais de um funcionario. Usando muitos printf o programa fica extenso entao eu quero que ajudem-me neste caso, usando string e umas das estruturas FOR, WHILE, IF, ou SWITCH.

    AGRADECERIA...

    /*Modelo de identificacao
    de empregados
    */
    #include
    #include
    #include

    int main(int argc, char *argv[])
    {
    char nm[50], pai[50], sx[10], mae[50];
    char bi[15], ntr[20], ncnld[20], ec[10];
    int tlfn[10];
    printf("\n\n\t\t\t CADASTRO PROFISSIONAIS \t\t\t\n\n";);
    printf("Inserir os dados:\n";);
    printf("Nome:\n";);
    scanf("%s", nm);
    //printf("Apelido:\n";);
    //scanf("%s", ap);
    printf("Sexo:\n";);
    scanf("%s", sx);
    printf("Nome do Pai:\n";);
    scanf("%s", pai);
    printf("Nome da mae:\n";);
    scanf("%s", mae);
    // printf("Data de Nascimento:\n";);
    //scanf("%s", dn);
    printf("Numero do BI:\n";);
    scanf("%s", bi);
    printf("Natural:\n";);
    scanf("%s", ntr);
    printf("Nacionalidade:\n";);
    scanf("%s", ncnld);
    Printf("Estado Civil:\n";);
    scanf("%s", ec);
    //printf("Endereco Residencial:\n";);
    //scanf("%s", edrc);
    printf("Telefone:\n";);
    scanf("%d", &tlfn);

    printf("\n\n\t\t\t DADOS INSERIDOS \t\t\t\n\n";);
    printf("Nome:%s", nm);
    printf("Sexo:%s", sx);
    printf("Nome do pai:%s", pai);
    printf("Nome da mae:%s", mae);
    printf("Numero do BI:%s", bi);
    printf("Natural:%s", ntr);
    printf("Nacionalidade:%s", ncnld);
    printf("Estado Civil:%s", ec);
    printf("Telefone%s", tlfn);




    system("PAUSE";);
    return 0;
    }

  • wander  - Duvidas com char
    avatar

    Olá! Gostaria de tirar uma dúvida simples. Eu faço um programa declarando uma char nome[10] = {}; que inicializa com '\0' para evitar lixo de memória ok?
    A dúvida é a seguinte: para imprimir os valores decimais dos caracteres digitados (tabela ASCII), se o nome for menor que 10, ele imprimira os valores decimais do tamanho da palavra, e o restante, ele completa com zeros (ex. maria = 109 - 97 - 114 - 105 - 97 -0 - 0 - 0 - 0 - 0 ). Temo como imprimir somente os valores decimais da tabela ASCII sem os zeros? (Ex.: maria = 109 - 97 - 114 - 1-5 - 97)?
    Abraços e obrigado!

  • wander  - Duvidas em char
    avatar

    Olá! Agradeço a todos, mas já consegui resolver o problema que eu citei neste site.
    Mesmo assim, quero deixar os meus agradecimentos!
    Abraços a todos!

  • wander  - re: Duvidas em char
    avatar
    wander Escreveu:
    Olá! Agradeço a todos, mas já consegui resolver o problema que eu citei neste site.
    Mesmo assim, quero deixar os meus agradecimentos!
    Abraços a todos!
  • dd  - re: Afff!!
    avatar
    Bolado Escreveu:

    Pow!! fato... quebrei a cabeça... vlw


    tens de comer muitos grelos :evil:

  • Rodrigo  - Como editar em uma linha de arquivo aleatória?
    avatar

    Boa tarde,
    Aqui esta um trabalho cujo objetivo é fazer uma agenda, já compilei para ver os erros e poucos aparecem (apenas uns ajustes)
    Minha duvida é a seguinte:
    - Na minha agenda, quando o usuario adiciona o nome, telefone e email, todas as informações são concatenadas e uma unica string SEPARADA POR DOIS PONTOS, assim: "rodrigo:123:rodrigo@...\n"
    Queria saber como eu faço pra pegar APENAS o nome, APENAS o email, APENAS o telefone para EDITAR, E SE CASO o usuario, na hora de editar não querer trocar oque está salvo, apenas apertar ENTER para que nada seja alterado e pule para o proximo item.
    http://codepad.org/fWnsE30H

  • Rodrigo
    avatar

    Só avisar que o link ali de baixo é o código inteiro (tem 300 linhas, n ia colocar aqui na pagina)

  • Anônimo
    avatar

    Só olhei por cima o código.

    O jeito mais fácil, é carregar a string inteira do arquivo, separar cada campo, atualizar o campo que você quer e refazer a string.

    Para separar, você pode usar strtok

  • Rodrigo
    avatar

    Muito obrigado (: ajudou pra caramba... trabalho é pra hoje, entao vamo que vamo ahaha
    Qualquer outra duvida, apareço novamente :DD
    abraço

  • Homem Tijolo  - Solução para ler arquivos de texto e editar
    avatar

    Olá Pessoal!

    Primeiro, parabéns pela página! As dicas muito úteis para quem está começando. Eu tenho uma dúvida, meu problema é que preciso abrir um arquivo, achar uma estrutura chamada RECT de um PIN e alterar os parâmetros.

    Eu fiz um código pra isso mas é totalemente força bruta e com certeza há uma solução melhor para o meu problema, mas como não tenho experiência fiz assim mesmo. Então hgostaria de sugestões sobre uma forma melhor de resolver esse problema. Aqui está o código:

    http://codepad.org/P3N2vG0V

    E essa é q estrutura que eu tenho que achar e alterar os parâmetros:
    -----------------------------
    PIN in
    DIRECTION INPUT ;
    PORT
    LAYER M1 ;
    RECT 0.0 0.0 10.000000 1.500000 ;
    END
    END in
    -----------------------------
    Então, alguém tem uma ideia mais inteligente que não seja pura força bruta?

    Abraço e obrigado!

  • Anônimo
    avatar

    Da uma olhada na função strstr que vai lhe facilitar muita coisa.

  • Gabriel Gomes  - Dúvida
    avatar

    Não sei se vocês ainda estão respondendo os comentários dessa tópico. Estou com uma dúvida, preciso substituir de uma string, uma palavra ou carácter fornecido pelo usuário por outro fornecido por ele. Gostaria de saber se tem alguma função para substituir!

  • Gabriel Gomes
    avatar

    ou alguma dica!

  • Vinícius Godoy
    avatar

    Veja a documentação dessas funções em:
    http://www.cplusplus.com/reference/cstring/

  • Vinícius Godoy
    avatar

    Provavelmente você terá que combinar as funções:
    * strstr, que procura por uma substring numa string;
    * strncat, que concatena uma string em outra.
    * strlen que calcula o tamanho da String de entrada.

  • mariane  - cadastro de clientes em c++
    avatar

    Olá, espero que possam me ajudar!!!
    tenho o seguinte programa pré montado...o que preciso fazer é apenas criar um void para alterar e excluir cadastro!
    como faço para associar o codigo do cliente que quero alterar com o codigo no qual ele foi cadastrado??? :?:
    obrigada!!! :)

    #include "stdafx.h"

    void Menu()

    {

    printf("\n";);

    printf("=============================================\n" ;);

    printf("== Menu Principal ==\n";);

    printf("=============================================\n" ;);

    printf("== ==\n";);

    printf("== [L]istar Cadastros ==\n";);

    printf("== [I]ncluir Cadastro ==\n";);

    printf("== [A]lterar Cadastro ==\n";);

    printf("== [E]xcluir Cadastro ==\n";);

    printf("== [F]inalizar Programa ==\n";);

    printf("== ==\n";);

    printf("==> Opcao ";);

    return;

    }

    //---------------------------------------------------------------

    void ListaCadastro(char vnome[10][30] ,char vcep[10][8])

    {

    int i = 0;

    for(i=0; i

  • Anônimo
    avatar

    Use um serviço como codepad.org para postar código.

  • Camila  - Nova linha
    avatar

    Ao usuário digitar uma frase, como apresentar cada palavra em uma nova linha?

  • Anônimo
    avatar

    Percorra a string procurando por espaços em branco, quando achar, imprima a string até esse ponto em uma linha, repita o processo.

  • Anônimo
    avatar

    Como faz pra comparar caracteres de strings diferentes? Por exemplo, saber quantos caracteres de uma string tb tem na outra.
    Valeu!

  • Anônimo
    avatar

    Isso esta meio vago, vai ter que percorrer uma string e para cada caractere, percorrer a outra e contar quantos existem.

  • Camila  - Nova Linha
    avatar

    Não estou sabendo o que usar para fazer a verificação do espaço vazio :S pode me dar uma dica?

    if(vet == ?)

  • Anônimo
    avatar

    basta:if (vet == ' ')

  • Giu
    avatar

    :dry: como faço para saber se o vendedor realizou vendas acima de $100 e acrescentar em cima disso 5%?

  • alfa
    avatar

    porquê que quando eu crio a string através do scanf
    o strlen() já não devolve o tamanho da string verdadeiro?

    char n[13];
    scanf("%d",&n);
    printf("%d\n\n",strlen(n));

    quando eu escrevo na consola por exemplo "12345" o que ela devolve do strlen() é 2 porquê?

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter