
Enviado em 01/03/2019 - 12:04h
Tentarei explicar minha dificuldade, olhem o exemplo abaixo que fiz e os comentários para essa pergunta.#include <stdio.h>
#include <string.h>
int main(void){
/* 1) QUERO PREENCHER UM VETOR COM VALORES IGUAIS. NÃO ESTOU CONSEGUINDO FAZER!
OBS: SEI SOBRE O FINAL DA LINHA \0 MAS VAMOS IGNORAR POR ENQUANTO POR FAVOR!
ESTES TESTES QUE ESTOU FAZENDO O OBJETIVO É EU ENTENDER MELHOR AS VARIÁVEIS */
char Text[50] = {0}; // FUNCIONA, Preencho o vetor com ZEROS
/* OBS AQUI nesta linha não quero varrer o vetor para preencher! Tipo com for ou while.
A idéia seria preencher de uma só vez na declaração */
char Text2[50] = {1}; // NÃO FUNCIONA, Preencher o vetor com números 1. Ele só escreve em Text2[0]
// EU queria preencher como consegui fazer com os ZEROS acima
// COMPILADOR NÃO ACEITA ISSO
// char Text3[50] = {a}; // Preencher ele inteiro com alguma letra
char Text4[50] = {'x'}; // FALHA só preenche a posição Text4[0]
char Text5[50] = {"x"}; // FALHA só preenche a posição Text5[0]
/* DÚVIDA ABAIXO, eu estou apanhando muito, minha cabeça deu um nó pois não sei
porque não sei colocar um valor em uma posição da variável */
strcpy(Text, "Vivx o Linux"); // Preenchi minha variável com um texto menor que o vetor.
/* Quero agora colocar a letra a no lugar do x!
PORÉM: Não quero localizar o x, Não quero varrer a variável!
Quero somente atribuir um valor a uma posição que eu determinar! Mas não sei se é posível ou permitido isso!
ISSO É POSSÍVEL? */
Text[3] = "a"; // Não funciona Ele colocou um 4 ao invés de a
Text[1] = "b"; // Não funciona Ele colocou um 6 ao invés de b
// Eu queria colocar a LETRA não o decimal
Text[3] = 'a'; // Ele colocou o Decimal de a 97
Text[1] = 'b'; // Ele colocou o Decimal de b 98
// EXISTE alguma forma de eu atribuir valor de forma parecida com a de cima?
}
#include <stdio.h>
#include <string.h>
void concatenate(char [], char []);
int main(){
char Texto1[20] = "Nick", Texto2[] = " usa Slackware";
concatenate(Texto1, Texto2);
printf("Texto = %s\n", Texto1);
}
void concatenate(char Texto1[], char Texto2[]){
/* Aqui dentro, os Texto1 e Texto2 viraram ponteiros não são vetores! PORQUE?
Não entendo eles serem ou parecerem ponteiros, porque não existe nenhuma declaração com *
para indicar que é um ponteiro */
int c = strlen(Texto1), d = 0;
while(Texto2[d] != '\0'){
Texto1[c] = Texto2[d]; // Ele junta os textos como se fossem ponteiros. SÃO PONTEIROS OU NÃO?
d++;
c++;
}
// Aqui posso escolher a posição que quero escrever meu texto. E no caso do 1º Código acima não consigo de forma alguma
Texto1[c] = '\0';
}
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (12)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









