Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- xnagyl2.c
- ZPPLS13
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_STR 50
- void strinsert(char *s, int d, char *s2, int i);
- void strdelete(char *s, int i, int n);
- int main()
- {
- char s[MAX_STR] = "";
- char s2[MAX_STR] = "";
- char vyber;
- int i, n, d, len;
- while(vyber = getchar())
- {
- if(vyber == 'N')
- {
- scanf("%s", &s);
- printf("%s",s);
- }
- else if(vyber == 'V')
- {
- scanf("%d %s", &i, &s2);
- len = strlen(s2);
- strinsert(s, len, s2, i);
- printf("%s",s);
- }
- else if(vyber == 'Z')
- {
- scanf("%d %d", &i, &n);
- strdelete(s, i, n);
- printf("%s\n",s);
- }
- else if(vyber == 'K')
- {
- break;
- }
- }
- return 0;
- }
- void strinsert(char *s, int d, char *s2, int i)
- {
- int len;
- char *str;
- str = (char *)malloc(d * sizeof(char));
- len = strlen(s);
- if(len == 0 || MAX_STR < len + d)
- {
- printf("do retazca nie je mozne vlozit podretazec od zvolenej pozicie\n");
- return;
- }
- strncpy(str, s, i);
- str[i] = '\0';
- strdelete(s, 0, i);
- strcat(str, s2);
- strcat(str, s);
- strcpy(s, str);
- }
- void strdelete(char *s, int i, int n)
- {
- int j;
- int len;
- len = strlen(s);
- if(i+n > len || len == 0)
- {
- printf("z retazca nie je mozne vymazat znaky\n");
- return;
- }
- for(j=i; j<len; j++)
- {
- s[j] = s[j+n];
- }
- s[len+1-n] = '\0';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement