1 – 27 de 27
Blogger Unknown disse...

Porque apenas a data de nascimento possui o puts em seguida?

27 de agosto de 2013 às 17:01

Anônimo Apostila de C disse...

Raquel,

Foi apenas para ilustrar o uso da função puts.

Poderíamos ter usado, por exemplo:
printf("Data de nascimento: %s", nascimento);

27 de agosto de 2013 às 17:39

Blogger Unknown disse...

Como salvo em uma variavel um string composto, nome e sobrenome, no linux? A biblioteca conio.h nao existe, entao o comando gets() ou getch() nao funciona, e o scanf() captura somente o primeiro nome.

6 de setembro de 2013 às 12:10

Anônimo Apostila C Progressivo disse...

Olá Marcos,

Adicionamos mais 2 tópicos nesta aula de nossa apostila, visando tirar sua dúvida. Veja se consegue ter sucesso agora.

6 de setembro de 2013 às 13:00

Anônimo Anônimo disse...

Oi,

qual a diferença entre scanf("%[^\n]",str) e scanf(\n%[^\n],str) ???

28 de setembro de 2013 às 14:38

Anônimo Iosley Carlos disse...

Alguem sabe como ler um vetor de string ? sei q uma string em C é um vetor de char mas se eu quiser fazer um vetor de string como faço ? ex: ler 20 nomes. tenho q criar 20 variaveis para receber um vetor de char ou há uma outra forma ?
ajuda awe :D

6 de novembro de 2013 às 08:22

Anônimo Apostila C Progressivo disse...

Iosley,

Você precisa criar um vetor de string, mas strings são vetores, então você vai criar um vetor de vetores.

O nome disso é matriz ou vetor multidimensional.

Por exemplo, se quiser criar 20 strings, onde cada uma delas vai armazenar 40 chars, declare:
matriz[20][40]

Suas strings são matriz[0], matriz[1], ..., matriz[19].

Na nossa seção de Vetores falamos mais sobre matrizes.

6 de novembro de 2013 às 15:34

Anônimo Apostila C Progressivo disse...

Iosley,

Você precisa criar um vetor de string, mas strings são vetores, então você vai criar um vetor de vetores.

O nome disso é matriz ou vetor multidimensional.

Por exemplo, se quiser criar 20 strings, onde cada uma delas vai armazenar 40 chars, declare:
matriz[20][40]

Suas strings são matriz[0], matriz[1], ..., matriz[19].

Na nossa seção de Vetores falamos mais sobre matrizes.

6 de novembro de 2013 às 15:34

Anônimo Anônimo disse...

Fiz a seguinte alteração no seu código apenas para testar o fgets:
#include
// Curso C Progressivo: www.cprogessivo.net
// O melhor curso de C! Online e gratuito !
// Apostila online, tutorial completo sobre
// a linguagem de programação C !

int main(void)

{
char nome[31], sobrenome[31], nascimento[11];
int idade;

printf("Nome: ");
fgets(nome,31,stdin);

printf("Sobrenome: ");
fgets(sobrenome,31,stdin);

printf("Idade: ");
scanf("%d", &idade);

printf("Data de nascimento: ");
scanf(" %11[^\n]",nascimento);

printf("\nNome completo: %s %s\n", nome, sobrenome);
printf("Idade: %d\n", idade);
printf("Data de nascimento: "); puts(nascimento);
return 0;

}

porem, quando vai imprimir o nome, ele pula uma linha para mostrar o sobrenome, por que isso acontece?

26 de novembro de 2013 às 06:29

Anônimo Rodrigo disse...

Parabéns pelo site, vocês ajudam muito quem precisa!

Não consegui assimilar muito bem o scanf:
" scanf ( "%256[^\n]", str); "

Em relação ao 256, quando declaramos a variável, já não estamos dizendo o tamanho que ela pode ter?
ex: char str [20];

De novo, parabéns pelo site, vocês fizeram um ótimo trabalho!

8 de dezembro de 2013 às 13:45

Anônimo Anderson Nobre disse...

No código enviado pelo anônimo acima, a quebra de linha ao imprimir o nome e o sobrenome ocorre pois a função fgets armazena também o '\n'. Nesse trecho de código está a correção através do uso do scanf e getchar, e através de uma função criada para remover o '\n'.

#include
void remove_barra_n(char *v)
{
while (*v!='\n')
{++v;}
*v= '\0';
}

int main(void)

{
char nome[31], sobrenome[31], nascimento[11];
int idade;

printf("Nome: ");
scanf("%s",nome); //a função scanf não armazena o '\n'
getchar(); /* essa função também pode ser usada para liberar o '\n' que esta em buffer nesse momento*/

printf("Sobrenome: ");
fgets(sobrenome,31,stdin);
remove_barra_n(sobrenome);// funçao que remove o '\n' da string

printf("Idade: ");
scanf("%d", &idade);

printf("Data de nascimento: ");
scanf(" %11[^\n]",nascimento);

printf("\nNome completo: %s %s\n", nome, sobrenome);
printf("Idade: %d\n", idade);
printf("Data de nascimento: "); puts(nascimento);
return 0;

}

11 de junho de 2014 às 11:22

Blogger Vadio Reis disse...

Boa noite!
Como faço para camuflar uma String que o usuário está digitando. Eu gostaria que a medida que o usuário fosse digitando (letra a letra) uma outra String pré-definida aparecesse...

29 de março de 2015 às 17:22

Anônimo Anônimo disse...

#include
#include
main()
{
float altura,homens,mulheres;
char sexo[21];
printf("Imforme sua altura: ");
scanf("%f", &altura);
fflush(stdin);
printf("Infome o seu sexo: ");
gets(sexo);
homens = (72.7*altura)-58;
mulheres = (62.1*altura)-44.7;
if (sexo == "masculino")
{
printf("Peso ideal para voce: %fkg",homens);
}
else
{
printf("Peso ideal para voce: %fkg",mulheres);
}
}

Como que eu faço para dizer para o programa q oq foi digitado foi a palavra "masculino" e com isso ele mostre o valor da variavel homens. se eu escrever femenino teria que aparecer a variavel mulheres.

21 de maio de 2015 às 11:00

Anônimo Anônimo disse...

Acho que você deve usar Swich Case

16 de setembro de 2015 às 09:31

Anônimo Anônimo disse...

Muito obrigado irmão, sua explicação me ajudou muito em um trabalho da faculdade muito obrigado mesmo, agora vou seguir seu blog.

1 de outubro de 2015 às 14:48

Anônimo Anônimo disse...

Se colocar uma string com gets, fgets ou [^\n}, dentro de um FOR. E digitar uma string com espaço, o valor após o espaço esta sendo salvo na segunda varialvel. Gostaria de saber, o que fazer pra resolver isso.

22 de novembro de 2015 às 09:23

Blogger Caroline Nunes disse...

Uma dúvida: como armazenar em um espaço de memória um "@"?
Não sei se utiliza char ou string, por favor me ajudem (:

14 de março de 2016 às 20:01

Blogger Unknown disse...

Show muito bem explicado ✰ ✰ ✰ ✰ ✰

16 de setembro de 2016 às 13:06

Blogger Unknown disse...

✰ ✰ ✰ ✰ ✰ Muito Bem explicado parabéns!

16 de setembro de 2016 às 13:08

Anônimo Anônimo disse...

qual instrução que solicita a digitação de um elemento especifico de uma string?
Ex: uma string de 10 caracteres, onde o programa pede ao operador que digite um elemento para a posição 6.

9 de dezembro de 2016 às 07:16

Blogger Unknown disse...

Olá! Boa Noite. Me ajude neste problema, pois não estou conseguindo. Desde já agradeço a quem puder me ajudar.
É o seguinte, estou tentando ler DOIS CARACTER, mas sempre dá conflito em um deles. O problema proposto é esse abaixo.
Faça um programa em C++ que receba a idade, o peso, a altura, a cor dos olhos (A – azul, P – preto, V – verde e C – castanho) e a cor dos cabelos (P – preto, C – castanho, L – louro e R – ruivo) de vinte pessoas, e que calcule e mostre:

• a quantidade de pessoas com idade superior a 50 anos e peso inferior a 60 quilos;
• a média das idades das pessoas com altura inferior a 1,5 metro;
• a percentagem de pessoas com olhos azuis entre todas as pessoas analisadas;
• a quantidade de pessoas ruivas e que não possuem olhos azuis.

ESTOU TENTANDO FAZER DESTA MANEIRA:
#include
#include
#include
#include
main(){
int i=0, idade=0, id_peso=0, cont=0, azul=0, cruivo=0, res=0, md=0;
float peso=0, alt=0, perc=0;
char olho, c_cab;

for(i=0;i<3;i++){
printf("\nCOR DOS OLHOS. [A] p/ azul, [P] p/ preto, [V] p/ verde, [C] p/ castanho: ");
scanf("%s", &olho);
printf("COR DOS CABELOS? [P] p/ preto, [C] p/ castanho, [L] p/ louro, [R] p/ ruivo: ");
scanf("%s", &c_cab);
printf("Digite a altura: "); scanf("%f",&alt);
printf("Digite a idade: "); scanf("%d",&idade);
printf("Digite o peso: "); scanf("%f",&peso);
olho = tolower(olho);
c_cab = tolower(c_cab);
if(olho == 'a')
azul++;
else if(c_cab == 'r' && c_olho != 'a')
c_ruivo++;
else if(alt<1.50){
md += idade;
cont++;
}
else if(idade>50 && peso<60)
id_peso++;
else
printf("Informacao incorreta\n");
}
perc = o_azul * 0.03;

printf("\n\nA qtde de pessoas com idade superior a 50, e peso inferior a 60 KG: %d\n",id_peso);
printf("A media das idades das pessoas com altura inferior a 1.50 m: %.2f\n", (float)md/cont);
printf("A percentagem de pessoas com olhos AZUIS entre todas as pessoas analisadas: %.2f\n", perc);
printf("A quantidade de pessoas RUIVAS e que NAO possuem OLHOSAZUIS: %d\n",c_ruivo);
}

NÃO ESTÁ CONTANDO OS "OLHOS AZUIS", E NEM OS "CABELOS RUIVOS". MAS QUANDO EU TIRO ESSA LINHA DO CÓDIGO CONTA NORMAL OS OLHOS AZUIS "printf("COR DOS CABELOS? [P] p/ preto, [C] p/ castanho, [L] p/ louro, [R] p/ ruivo: ");
scanf("%s", &c_cab);"
O resto do código está OK. SÓ TÁ DANDO PROBLEMA NESSA PARTE. ME AJUDEM POR FAVOR.

11 de abril de 2017 às 22:52

Blogger Bruno Silva disse...

Vc tem que usar Matriz (Vetor de vetor)
ex.:
int main(void)
{
char nome [20 /*quantidade de nomes*/][30 /*tamanho máximo dos nomes*/];
}
se usa (gets(nome[índice]);)
procura na net q fica mais fácil

7 de novembro de 2018 às 09:17

Blogger Unknown disse...

Desculpe, mas não compreendi direito o motivo do "scanf" trabalhado com string não necessitar de "&". Poderia me explicar melhor? Agradeço desde já.

13 de fevereiro de 2019 às 15:35

Anônimo Anônimo disse...

Escreva um programa em C que solicita duas cadeias de caracteres ao
usuário e imprime na tela as cadeias em ordem lexicográfca (ordem dos
dicionários) com os seus respectivos tamanhos ao lado

ajudem por favor

28 de março de 2019 às 15:49

Anônimo Anônimo disse...

Prezados,

Estou com o seguinte problema:

- Criar um arquivo de nome “horoscopo.txt” que deverá ser aberto com a opção “w”.

- Utilizar a tela acima e criar uma frase para cada signo do zodíaco, totalizando 12 frases.

- Cada frase deverá ter no máximo 100 caracteres.

- O programa deverá controlar esse tamanho, não deixando gravar frases maiores que 100 caracteres.

- O programa deverá acrescentar uma identificação numérica em cada frase, variando de 11 a 22, começando pelo signo de capricórnio, conforme exemplo a seguir:

11cccccccccccccccccccc...ccccccccccccccccccccccccccc

12aaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaa

13ppppppppppppppppppp....pppppppppppppppppppp

...

c, a e p representam respectivamente as frases que devem ser escritas para os signos de capricórnio, aquário e peixes.

- Criar uma estrutura com um campo numérico para as duas posições iniciais e um campo caractere para as 100 posições da frase.

➔ CUIDADO COM O TAMANHO DO CAMPO int PORQUE O NÚMERO DE BYTES DO CAMPO PODE VARIAR DE COMPUTADOR PARA COMPUTADOR.

➔ NÃO ESQUECER DE ACRESCENTAR OS BYTES DE CONTROLE.

- Criar um array numérico inteiro para identificar os 12 signos (11, 12, 13, …, 20, 21, 22).

- Criar um array caractere para descrever cada signo e o respectivo período do ano (CAPRICORNIO - 22/12 a 19/01, AQUARIO - 20/01 a 18/02, PEIXES - 19/02 a 20/03, …, LIBRA - 23/09 A 22/10, ESCORPIAO - 23/10 A 21/11, SAGITARIO - 22/11 A 21/12.

- Gravar a frase.

- Após ser incluída a última frase, o programa deverá fechar o arquivo.

A parte de criar o arquivo e gravar tenho essa abaixo, porém gostaria de uma ajuda para resolver isso, se possível, me desculpem o desespero.

#include
#include

int main(){
char escreva[12][100];

FILE *arquivo;

// w para criar arquivo
// se o arquivo já existir, o w faz com que seja criado um novo
arquivo = fopen("horoscopo.txt","w");

printf("O arquivo foi criado!");


arquivo = fopen("horoscopo.txt","w");

printf("Escreva algo: ");

scanf("%[^\n]", &escreva);
fputs(escreva, arquivo);

fclose(arquivo);

return 0;
}






29 de maio de 2019 às 10:41

Blogger Unknown disse...

Olá, o meu pai me deu um desafio:

Ele pediu que eu criasse um programa que lesse uma frase e que dissesse quantos caracteres tem até o primeiro espaço.

Como é que eu faço?

9 de novembro de 2020 às 14:54

Blogger Carla Ceres disse...

Ótima postagem! Muito obrigada!

25 de janeiro de 2022 às 12:24

É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.

- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção

- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia

- Se algo não ficar claro ou for confuso, nos avise

Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.
Você pode usar algumas tags HTML, como <b>, <i>, <a>

A moderação de comentários foi ativada. Todos os comentários devem ser aprovados pelo autor do blog.

Depois de enviar seu comentário, será necessário fazer login.
Prove que você não é um robô