Ir para conteúdo

POWERED BY:

Arquivado

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

Lúcio Henrique de Oliveira

Strings - não sei "empurrar"

Recommended Posts

Olá amigos, estou tendo problemas para interpretar a seguinte questão: Escreva uma função em "C" que receba um string, um caracter e o índice de uma posição do string como parâmetro, e insira o caracter na posição "empurrando" todos os demais para o lado.

 

consegui "imaginar" até aqui:

#include <stdio.h>#include <cstdlib>#include <string.h>void empurrar(int indice, char cactr, char str[20]);main() {		char str[19], cactr;		int indice;				printf("Digite um string: ");		fgets(str,19,stdin);				printf("Digite um caracter: ");		scanf("%c",&cactr);				printf("Em qual indice deseja acrescentar o caracter? (De 0 a 19)");		scanf("%d",&indice);						empurrar(indice,cactr,str);				system("pause");}void empurrar(int indice, char cactr, char str[19]) {	 	 int str_f[20];	 	 str_f[indice] = str[indice];	 //str_f[] = str[1];	 	 	 	 	 	 printf("%s", str_f[20]);	 	 }

Não sei ir pra frente, não sei se esta certo....

 

Gostaria de uma ajuda, pois embora seja simples estou ralando nisso ai.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew cara, to iniciando tb em c++, entao talvez esta nao seja a melhor maneira, mas foi a q eu encontrei pra resolver a questao.

#include <stdio.h>#include <cstdlib>#include <string.h>using namespace std;void empurrar(int indice, char cactr, char str[]);main() {		char str[19], cactr;		int indice;				printf("Digite um string: ");		fgets(str,19,stdin);				printf("Digite um caracter: ");		scanf("%c",&cactr);				printf("Em qual indice deseja acrescentar o caracter? (De 0 a %d)",strlen(str)-1);		scanf("%d",&indice);		if (indice < strlen(str)-1)		{		   empurrar(indice,cactr,str);		}		else		{			printf("Nao existe letra nessa posição\n\n");		}				system("pause");}void empurrar(int indice, char cactr, char str[]) {	 char aux1;	 for ( indice; indice <= strlen(str); indice++)	 {		 aux1= str[indice];		 str[indice]=cactr;		 cactr = aux1;	 }	 printf("%s", str);	 	 }

No teste do for eu gostaria de testar nao com o comprimento da string, mas sim com '/0'. no caso for ( indice ; indice !='/'0; indice++)

o programa ateh rodou, mas o resultado nao foi o esperado.

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.