Advertisement
hocikto19

11-3

Dec 7th, 2013
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int strinsert(char *dst, int len, const char *src, int offset);
  6. int strdelete(char *str, int n, int offset);
  7. int vyhodnot(char *prikaz);
  8.  
  9. int main()
  10. {
  11.   char prikaz[5], str[50], str2[50];
  12.   int i, n, max=0, volba;
  13.   do{
  14.     scanf("%s", prikaz);
  15.     volba=vyhodnot(prikaz);
  16.     switch (volba){
  17.       case 1:
  18.         scanf("%s %d", str, &max);
  19.         printf("%s\n", str);
  20.         break;
  21.       case 2:
  22.         scanf("%d %s", &i, str2);
  23.         if(strinsert(str, max, str2, i))
  24.           printf("do retazca nie je mozne vlozit podretazec od zvolenej pozicie\n");
  25.         else
  26.           printf("%s\n", str);
  27.         break;
  28.       case 3:
  29.         scanf("%d %d", &i, &n);
  30.         if(strdelete(str, n, i))
  31.           printf("z retazca nie je mozne vymazat znaky\n");
  32.         else
  33.           printf("%s\n", str);
  34.         break;
  35.       default: break;
  36.     }
  37.   }while(strcmp(prikaz, "K"));
  38.   return 0;
  39. }
  40.  
  41. int vyhodnot(char *prikaz){
  42.    if(!(strcmp(prikaz, "read")))
  43.      return 1;
  44.    if(!(strcmp(prikaz, "ins")))
  45.      return 2;
  46.    if(!(strcmp(prikaz, "del")))
  47.      return 3;
  48.    return 0;
  49. }
  50.  
  51. int strdelete(char *str, int n, int offset)
  52. {
  53.   int i;
  54.   if(offset+n>strlen(str))
  55.     return 1;
  56.   for(i=offset+n; i<=strlen(str); i++)
  57.     str[i-n]=str[i];
  58.   return 0;
  59. }
  60.  
  61. int strinsert(char *dst, int len, const char *src, int offset)
  62. {
  63.   char *pom;
  64.   int i;
  65.   if(strlen(dst)+strlen(src)>=len)
  66.     return 1;
  67.   pom=(char*)malloc(len+strlen(src)+2);
  68.   for(i=0; i<offset; i++)
  69.     pom[i]=dst[i];
  70.   pom[offset]='\0';
  71.   strcat(pom, src);
  72.   for(i=offset; i<=strlen(dst); i++)
  73.     pom[i+strlen(src)]=dst[i];
  74.   strcpy(dst, pom);
  75.   return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement