Me ajudem a resolver um exercício utilizando a linguagem C sou iniciante.
Não estou conseguindo resolver esse exercício sei que é simples eu sinto isso, porém para mim que sou iniciante ele se torna algo difícil me ajudem por gentileza.
Escreva um programa que leia duas strings e as coloque na tela. Imprima também a
segunda letra de cada string.
Escreva um programa que leia duas strings e as coloque na tela. Imprima também a
segunda letra de cada string.
Tassio
Curtidas 0
Respostas
João Júnior
19/07/2019
Não estou conseguindo resolver esse exercício sei que é simples eu sinto isso, porém para mim que sou iniciante ele se torna algo difícil me ajudem por gentileza.
Escreva um programa que leia duas strings e as coloque na tela. Imprima também a
segunda letra de cada string.
Escreva um programa que leia duas strings e as coloque na tela. Imprima também a
segunda letra de cada string.
Tássio, para resolver essa questão você deve ter em mente três coisas:
1 - Na linguagem C, as strings são cadeias de caracteres representadas por arrays, ou seja, uma string é um array de char;
Exemplo: "Amanhã" equivale a
char texto[] = {'A', 'm', 'a', 'n', 'h', 'ã'};2 - A linguagem C é zero-based, isto é, as variáveis indexadas sempre têm como índice inicial o valor zero (0). Com efeito, a segunda posição de um array é a posição um (1). Do exemplo anterior:
texto[1] = 'm';
3 - Na linguagem C, os arrays são ponteiros, isto é, há um endereço que guarda outro endereço de memória. Por esse motivo, não é necessário informar o endereço de um array (&).
Observe também que ao ler uma string, usa-se comumente a função scanf com parâmetro o especificador de formato para string (%s). Contudo, quando se quer 'imprimir' um caractere de uma string, a função printf deve vir com o especificador de formato para caractere (%c).
Feitas essas considerações, entenderá o exemplo abaixo:
#include<stdio.h>
#include<stdlib.h>
int main(){
char string1[10];
char string2[10];
printf("Informe duas strings...\\n");
printf("String 01: ");
scanf("%s", string1);
printf("\\nString 02: ");
scanf("%s", string2);
printf("As strings informadas foram:\\n\\n");
printf("String1: %s", string1);
printf("\\nString2: %s", string2);
printf("\\n\\nSegunda letra da string 01-> %c", string1[1]);
printf("\\n\\nSegunda letra da string 02-> %c", string2[1]);
printf("\\n");
system("pause");
return 0;
}Observe porém que a função scanf cessa a leitura quando encontra um espaço, ou seja, não lê uma frase, frase composta por mais de uma palavra. Para resolver esse problema, pode-se usar a forma scanf("%50[^\\n]s", endereço) ou a função fgets(string, tamanho, stdin).
Explicação (simplificada):
scanf("%50[^\\n]s", endereço)
-> %50s = ler uma string de tamanho 50
-> [^] = desconsiderar o que segue
-> [^\\n] = desconsiderar os espaços seguintes
-> "%50[^\\n]" = ler uma string de tamanho 50 desconsiderando os espaços como indicador de nova palavra (sem cortar - sem tokenizar).
fgets(string, tamanho, stdin)
-> string = strin a ser lida
-> tamanho = tamanho da instring
-> stdin = sistema padrão de entrada de dados (teclado) - "standard input"
GOSTEI 0