Ir ao conteúdo

Strings


rafaelrrf

Posts recomendados

Postado

Pessoal, alguem sabe porque isso nao funciona?

    char all[100];	char msg[50];	int tamanho, cont = 0;        printf("Digite a mensagem: ");	scanf("%50s", msg); fflush(stdin);	tamanho = 20;	for (i=tamanho; i < 100; i++) {        all[i] = msg[cont++];	}		printf("Buf: %s\n", all);

Porque nada é impresso no buffer?

Postado

Pessoal, alguem sabe porque isso nao funciona?

    char all[100];	char msg[50];	int tamanho, cont = 0;        printf("Digite a mensagem: ");	scanf("%50s", msg); fflush(stdin);	tamanho = 20;	for (i=tamanho; i < 100; i++) {        all[i] = mensagem[cont++];	}		printf("Buf: %s\n", buffer);

Porque nada é impresso no buffer?

não achei essa variavel mensagem .. acredito que deva ser msg ..

e esse buffer nunca é preenchido com nada .. e muitos menos declarado.

 

 

Acredito que o código está incompleto ai .. falto posta alguma coisa senão nem ia rodar

Postado

Tinha coloca errado porque mudei uns nomes. Já consertei dê uma olhada.

 

O que eu quero é, por ex:

 

Tenho esse vetor de char

char msg[100];

 

eu quero inserir dps da posicao 50 em diante uma e string, "Estou nas posições posteriores a 50" por ex.

 

E depois inserir na posicao 0 a 10. E em seguida imprimir essa msg.

Postado

//Ola! Tente assim

char all[100];

char msg[50];

int tamanho, cont = 0, i;

printf("Digite a mensagem: ");

scanf("%50s", msg), fflush(stdin);

tamanho = 50;

for (i=tamanho; i < 100; i++) {

all = msg[cont++];

}

printf("Buf: %s\n", &all[tamanho]);

Postado

Não funciona. Consegui de um jeito, antes do for eu prenchi o all[100] todo com um caracter. Depois deu certo imprimir com  a msg e tal, ela so substituia o caracter.

 

Outra questão, se eu tenho um vetor char[4] = "AEIOU"; Como eu passo para uma outra variavel somente os 2 ultimos caracteres? eu tentei usando o for, até foi mais apareceu umas letras estranhas.

Postado

Não funciona. Consegui de um jeito, antes do for eu prenchi o all[100] todo com um caracter. Depois deu certo imprimir com  a msg e tal, ela so substituia o caracter.

 

Outra questão, se eu tenho um vetor char[4] = "AEIOU"; Como eu passo para uma outra variavel somente os 2 ultimos caracteres? eu tentei usando o for, até foi mais apareceu umas letras estranhas.

aparece umas "letras estranhas" porque tem lixo na memoria .. ou você passa branco pra esse 2 primeiros caracteres ou usa o 2 primeiros e coloca o /0 para fecha a "string".

 

Se não me engano existe uma função para limpar toda a sequência.

Postado

Você pode usar as funções memset e memcpy para faciliar.

Por exemplo

   char all[100], msg[50], *s = all;    memset(all, ' ', 100);        printf("Mensagem: ");        scanf("%50s", msg);    s += 19;    memcpy(s, msg, strlen(msg) + 1);    printf("Buf: %s\n", all);
Postado

Pelo o que vejo aqui: char[4] = "AEIOU";

Você não compreendeu o que é o strings, e quais são as regras para se manipular um:

 

Não funciona. Consegui de um jeito, antes do for eu prenchi o all[100] todo com um caracter. Depois deu certo imprimir com  a msg e tal, ela so substituia o caracter.

 

Outra questão, se eu tenho um vetor char[4] = "AEIOU"; Como eu passo para uma outra variavel somente os 2 ultimos caracteres? eu tentei usando o for, até foi mais apareceu umas letras estranhas.

Postado

Mauro eu só esqueci de colocar o nome da variável, você deveria sacar isso mas tudo bem.

 

Aos outros, obrigado pela ajuda. Eu já consegui resolver.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!