Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define MAX 100
- void obrisi_znak(char *string, char ch){
- for(int i = 0; i < strlen(string); i++){
- if(string[i] == ch){
- /* oslobodi dovoljno memorije da stanu svi elementi desno od trenutne pozicije */
- char *string_to_copy = (char*)calloc(strlen(string) - i, sizeof(char));
- /* spremi sve elemente desno od trenutne pozicije u string varijablu string_to_copy */
- strncpy(string_to_copy, string + i + 1, strlen(string) - i);
- /* iskopiraj sadrzaj string varijable string_to_copy u string varijablu string na poziciju i */
- strcpy(string + i, string_to_copy);
- /* umanji indeks zbog provjere sljedeceg uzastopnog znaka */
- /* npr. te**st --> indeks prvog znaka je 2, nakon kopiranja string postaje te*st */
- /* no nasa petlja se i dalje nalazi na poziciji indeksa 2 odnosno na poziciji sada trenutne '*' */
- /* sto znaci da moramo umanjiti indeks da bi se na sljedecoj vrtnji petlje ponovo vratili na '*' */
- /* te ju iskopirali na identican nacin */
- i--;
- }
- }
- }
- int main(void){
- char *string = (char*)calloc(MAX, sizeof(char));
- printf("Ucitaj string:\n> ");
- scanf("%s", string);
- char ch;
- printf("\nUcitaj znak:\n> ");
- scanf(" %c", &ch);
- printf("\nPrije brisanja znaka '%c':\n%s", ch, string);
- obrisi_znak(string, ch);
- printf("\n\nNakon brisanja znaka '%c':\n%s\n", ch, string);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement