Estou com uma dúvida e não estou conseguindo chegar no resultado.
Preciso Implementar uma função crop, para a TAD String.
Essa função deve ter a seguinte assinatura:
String *crop(String s1, int ini, int fim)
Ela deve receber uma String existente (testar se existe), e dois índices que demarcarão um trecho a ser 'cortado'. A função deve retornar uma nova String com o conteúdo da string s1 (parâmetro), mas sem o trecho cortado.
Exemplo: se o conteúdo de s1 for: "String apenas de teste", e chamarmos a função crop como indicado abaixo
String *s2 = crop(s1, 6, 12)
Como resultado, uma nova string deve ser criada e retornada, e nesse caso, s2 deveria ter o conteúdo:
"String de teste"
A parte " apenas" (demarcada pelos índices 6 e 12, inclusive) deve ser removida da string resultante.
Eu fiz esse código, mas ele apenas pega o indice inicial que eu escolhi e o final e mantem entre eles, exemplo: palavra "SAPO" eu escolho o indice 2 e o 4 ele retorna "APO"
// Substring INI e FIMString*substring(String*s1,int ini,int fim){String*s3 =(String*)malloc(sizeof(String));int total_blocos =((fim - ini)/TAM_BLOCO)+1;
s3->str =(char*)malloc(total_blocos*TAM_BLOCO*sizeof(char));int i;for(i=0; i<fim-ini; i++){
s3->str[i]= s1->str[ini+i];}
s3->str[i]='\0';
s3->tam = fim - ini;
s3->num_blocos = total_blocos;return s3;}
int ini=0;int fim=0;int num=0;
puts("\t\nREALIZANDO A SUBSTRING ->");while(num==0){
printf("\nQual caracter você deseja escolher para ser o inicial? ");
scanf("%i",&ini);if(ini ==0) ini =1;
printf("\nQual caracter você deseja escolher para ser o final? ");
scanf("%i",&fim);if(fim>ini && ini<str1->tam && fim<str1->tam+1) num=1;}String*s3= substring(str1, ini-1, fim-1);
printf("\n");
printf("String: [%s] em s3\n", s3->str);
printf("String tamanho: [%i] Caracteres no s3\n", s3->tam);
printf("String numero de blocos: [%i] Blocos de %i espacos usados no s3\n\n", s3->num_blocos, TAM_BLOCO);
Pergunta
Scarlaty Costa
Bom dia a todos !!
Estou com uma dúvida e não estou conseguindo chegar no resultado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.