Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int strinsert(char *dst, int len, const char *src, int offset);
- int strdelete(char *str, int n, int offset);
- int vyhodnot(char *prikaz);
- int main()
- {
- char prikaz[5], str[50], str2[50];
- int i, n, max=0, volba;
- do{
- scanf("%s", prikaz);
- volba=vyhodnot(prikaz);
- switch (volba){
- case 1:
- scanf("%s %d", str, &max);
- printf("%s\n", str);
- break;
- case 2:
- scanf("%d %s", &i, str2);
- if(strinsert(str, max, str2, i))
- printf("do retazca nie je mozne vlozit podretazec od zvolenej pozicie\n");
- else
- printf("%s\n", str);
- break;
- case 3:
- scanf("%d %d", &i, &n);
- if(strdelete(str, n, i))
- printf("z retazca nie je mozne vymazat znaky\n");
- else
- printf("%s\n", str);
- break;
- default: break;
- }
- }while(strcmp(prikaz, "K"));
- return 0;
- }
- int vyhodnot(char *prikaz){
- if(!(strcmp(prikaz, "read")))
- return 1;
- if(!(strcmp(prikaz, "ins")))
- return 2;
- if(!(strcmp(prikaz, "del")))
- return 3;
- return 0;
- }
- int strdelete(char *str, int n, int offset)
- {
- int i;
- if(offset+n>strlen(str))
- return 1;
- for(i=offset+n; i<=strlen(str); i++)
- str[i-n]=str[i];
- return 0;
- }
- int strinsert(char *dst, int len, const char *src, int offset)
- {
- char *pom;
- int i;
- if(strlen(dst)+strlen(src)>=len)
- return 1;
- pom=(char*)malloc(len+strlen(src)+2);
- for(i=0; i<offset; i++)
- pom[i]=dst[i];
- pom[offset]='\0';
- strcat(pom, src);
- for(i=offset; i<=strlen(dst); i++)
- pom[i+strlen(src)]=dst[i];
- strcpy(dst, pom);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement