//================================================================
// Nome Do Arquivo: string_substring.c
// File Name: string_substring.c
//
// Descrição: O programa retorna uma string a partir de um dado
// intervalo: [start, end[
//================================================================
// Libs
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Protótipo da função
char* string_substring(char str[], int start, int end);
// Função main
// Main Function
int main(int argc, char** argv)
{
char str[100], *sub;
int start, end;
// Lê a string
printf("Digite a string: ");
gets(str);
printf("Digite a posição inicial: ");
scanf("%d", &start);
printf("Digite a posição final: ");
scanf("%d", &end);
// Retorna a substring
sub = string_substring(str, start, end);
// Imprime a substring
printf("A substring: %sn", sub);
system("pause");
return 0;
}
char* string_substring(char str[], int start, int end) {
int i, j;
char *sub;
// Verifica valores incompatíveis e
// retorna NULL
if(start >= end || end > strlen(str)) {
return NULL;
}
// Aloca memória para a substring
sub = (char *) malloc(sizeof(char) * (end - start + 1));
// Copia a substring para a variável
for(i = start, j = 0; i < end; i++, j++) {
sub[j] = str[i];
}
// Terminador de string
sub[j] = '\0';
return sub;
}