Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.60 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define MAX 100
  6.  
  7. void obrisi_znak(char *string, char ch){
  8.     for(int i = 0; i < strlen(string); i++){
  9.         if(string[i] == ch){
  10.             /* oslobodi dovoljno memorije da stanu svi elementi desno od trenutne pozicije */
  11.             char *string_to_copy = (char*)calloc(strlen(string) - i, sizeof(char));
  12.            
  13.             /* spremi sve elemente desno od trenutne pozicije u string varijablu string_to_copy */
  14.             strncpy(string_to_copy, string + i + 1, strlen(string) - i);
  15.            
  16.             /* iskopiraj sadrzaj string varijable string_to_copy u string varijablu string na poziciju i */
  17.             strcpy(string + i, string_to_copy);
  18.            
  19.             /* umanji indeks zbog provjere sljedeceg uzastopnog znaka */
  20.             /* npr. te**st --> indeks prvog znaka je 2, nakon kopiranja string postaje te*st */
  21.             /* no nasa petlja se i dalje nalazi na poziciji indeksa 2 odnosno na poziciji sada trenutne '*' */
  22.             /* sto znaci da moramo umanjiti indeks da bi se na sljedecoj vrtnji petlje ponovo vratili na '*' */
  23.             /* te ju iskopirali na identican nacin */
  24.             i--;
  25.         }
  26.     }
  27. }
  28.  
  29. int main(void){
  30.     char *string = (char*)calloc(MAX, sizeof(char));
  31.     printf("Ucitaj string:\n> ");
  32.     scanf("%s", string);
  33.  
  34.     char ch;
  35.     printf("\nUcitaj znak:\n> ");
  36.     scanf(" %c", &ch);
  37.  
  38.     printf("\nPrije brisanja znaka '%c':\n%s", ch, string);
  39.  
  40.     obrisi_znak(string, ch);
  41.  
  42.     printf("\n\nNakon brisanja znaka '%c':\n%s\n", ch, string);
  43.  
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement