replace
#include <stdio.h>
#include <string.h>

// Função para substituir todas as ocorrências de 'old_str' por 'new_str' em 'input_str'
void replaceString(char *input_str, const char *old_str, const char *new_str) {
    char *result;
    int i, count = 0;
    int new_str_len = strlen(new_str);
    int old_str_len = strlen(old_str;

    // Conta quantas vezes 'old_str' aparece em 'input_str'
    for (i = 0; input_str[i] != '\0'; i++) {
        if (strstr(&input_str[i], old_str) == &input_str[i]) {
            count++;
            i += old_str_len - 1;
        }
    }

    // Aloca memória para a nova string
    result = (char *)malloc(i + count * (new_str_len - old_str_len) + 1);

    i = 0;
    while (*input_str) {
        if (strstr(input_str, old_str) == input_str) {
            strcpy(&result[i], new_str);
            i += new_str_len;
            input_str += old_str_len;
        } else {
            result[i++] = *input_str++;
        }
    }
    result[i] = '\0';

    // Copia a nova string de volta para a string de entrada
    strcpy(input_str, result);

    // Libera a memória alocada para a nova string
    free(result);
}

int main() {
    char str[] = "Esta é uma string de exemplo. Exemplo de string.";
    const char old_str[] = "exemplo";
    const char new_str[] = "amostra";

    replaceString(str, old_str, new_str);

    printf("String após a substituição: %s\n", str);

    return 0;
}

 

length
#include <stdio.h>
#include <string.h>

int main() {
    char minhaString[] = "Esta é uma string de exemplo";

    int comprimento = strlen(minhaString);

    printf("O comprimento da string é: %d\n", comprimento);

    return 0;
}

 

substring
#include <stdio.h>
#include <string.h>

// Função para extrair uma substring de uma string
void substring(const char *input, int start, int length, char *output) {
    int input_length = strlen(input);
    int i;

    if (start < 0 || start >= input_length) {
        printf("Índice de início inválido\n");
        return;
    }

    for (i = 0; i < length && input[start + i] != '\0'; i++) {
        output[i] = input[start + i];
    }

    output[i] = '\0';
}

int main() {
    char minhaString[] = "Esta é uma string de exemplo";
    char subString[20]; // Alocando espaço para a substring

    int startIndex = 5; // Índice inicial
    int length = 8;    // Comprimento da substring

    substring(minhaString, startIndex, length, subString);

    printf("Substring: %s\n", subString);

    return 0;
}

 

charAt
#include <stdio.h>

int main() {
    char minhaString[] = "Esta é uma string de exemplo";
   
    // Acessando o caractere na posição 5 (índice 4) da string
    char caractere = minhaString[4];
   
    printf("O caractere na posição 5 é: %c\n", caractere);

    return 0;
}

 

indexOf
#include <stdio.h>
#include <string.h>

// Função para encontrar a posição da primeira ocorrência de uma subcadeia em uma string
int indexOf(const char *haystack, const char *needle) {
    const char *result = strstr(haystack, needle);
    if (result != NULL) {
        return result - haystack;
    } else {
        return -1; // Subcadeia não encontrada
    }
}

int main() {
    char minhaString[] = "Esta é uma string de exemplo";
    const char subcadeia[] = "exemplo";

    int posicao = indexOf(minhaString, subcadeia);

    if (posicao != -1) {
        printf("A subcadeia foi encontrada na posição %d\n", posicao);
    } else {
        printf("A subcadeia não foi encontrada na string.\n");
    }

    return 0;
}

 

lastIndexOf
#include <stdio.h>
#include <string.h>

// Função para encontrar a posição da última ocorrência de uma subcadeia em uma string
int lastIndexOf(const char *haystack, const char *needle) {
    const char *result = NULL;
    const char *current = haystack;

    while ((current = strstr(current, needle)) != NULL) {
        result = current;
        current++;
    }

    if (result != NULL) {
        return result - haystack;
    } else {
        return -1; // Subcadeia não encontrada
    }
}

int main() {
    char minhaString[] = "Esta é uma string de exemplo com uma palavra exemplo.";
    const char subcadeia[] = "exemplo";

    int posicao = lastIndexOf(minhaString, subcadeia);

    if (posicao != -1) {
        printf("A última ocorrência da subcadeia foi encontrada na posição %d\n", posicao);
    } else {
        printf("A subcadeia não foi encontrada na string.\n");
    }

    return 0;
}

 

toLowerCase
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main() {
    char minhaString[] = "Esta é uma String com Caracteres Latinos: ÁÉÍÓÚÑ";

    for (int i = 0; minhaString[i]; i++) {
        minhaString[i] = tolower(minhaString[i]);
    }

    printf("String em minúsculas: %s\n", minhaString);

    return 0;
}

 

toUpperCase
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main() {
    char minhaString[] = "Esta é uma String com Caracteres Latinos: áéíóúñ";

    for (int i = 0; minhaString[i]; i++) {
        minhaString[i] = toupper(minhaString[i]);
    }

    printf("String em maiúsculas: %s\n", minhaString);

    return 0;
}

 

compareTo
#include <stdio.h>
#include <string.h>

int main() {
    char string1[] = "banana";
    char string2[] = "abacaxi";
   
    int resultado = strcmp(string1, string2);

    if (resultado < 0) {
        printf("string1 vem antes de string2 na ordem lexicográfica.\n");
    } else if (resultado == 0) {
        printf("As duas strings são idênticas.\n");
    } else {
        printf("string1 vem depois de string2 na ordem lexicográfica.\n");
    }

    return 0;
}

 

compareToIgnoreCase

#include <stdio.h>
#include <strings.h> // Para strcasecmp

int main() {
char string1[] = "banana";
char string2[] = "Banana";

int resultado = strcasecmp(string1, string2);

if (resultado == 0) {
printf("As duas strings são iguais (sem diferenciação de maiúsculas e minúsculas).\n");
} else {
printf("As duas strings são diferentes (sem diferenciação de maiúsculas e minúsculas).\n");
}

return 0;
}

 

equals
#include <stdio.h>
#include <string.h>

int main() {
    char string1[] = "banana";
    char string2[] = "banana";

    int resultado = strcmp(string1, string2);

    if (resultado == 0) {
        printf("As duas strings são iguais.\n");
    } else {
        printf("As duas strings são diferentes.\n");
    }

    return 0;
}

 

equalsIgnoreCase
#include <stdio.h>
#include <strings.h>  // Para strcasecmp

int main() {
    char string1[] = "banana";
    char string2[] = "Banana";

    int resultado = strcasecmp(string1, string2);

    if (resultado == 0) {
        printf("As duas strings são iguais (sem diferenciação de maiúsculas e minúsculas).\n");
    } else {
        printf("As duas strings são diferentes (sem diferenciação de maiúsculas e minúsculas).\n");
    }

    return 0;
}