LukacikPavel

Cecko

Nov 13th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.64 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    char *s1 = "Ahoj ";
  6.    char *s2 = "svet.";
  7.    char *s3 = "\n";
  8.    
  9.    char *str[3];
  10.    
  11.    str[0] = s1;
  12.    str[1] = s2;
  13.    str[2] = s3;
  14.    
  15.    for (int i=0; i<3; i++){
  16.        printf("%s(%p) ", str[i], str[i]); //vypis pola charov  a jeho pointeru
  17.    }
  18.  
  19.    return 0;
  20. }
  21. #######################################################################################################################################
  22. 1. uloha - na vstupe dva retazce, chceme retazec, ktory ma ity char rovny itemu charu v retazcoch s1 a s2 ak sa rovnaju a medzere ak sa ite znaky v s1 a s2 nerovnaju
  23.  
  24. #include <stdio.h>
  25. #include <string.h> //nezabudat na importy :)
  26. #include <stdlib.h>
  27.  
  28. int main()
  29. {
  30.    char *s1 = "Ahoj svet";
  31.    char *s2 = "svej.";
  32.    char *str = NULL;
  33.    short cnt = 0;
  34.    
  35.    // dlzka vysledneho retazca je rovna dlzke najdlhsieho zo s1 a s2
  36.    if (strlen(s1) > strlen(s2)){
  37.        str = (char*)malloc(strlen(s1)+1);
  38.        cnt = strlen(s1); // v Cecku si musim pamatat kolko som si alokoval, po alokovani si to neviem zistit
  39.    } else {
  40.        str = (char*)malloc(strlen(s2)+1);
  41.        cnt = strlen(s2);
  42.    }
  43.    
  44.    memset(str, ' ', cnt); // inicializujem, akoby pomocou for si dam medzeru za kazdy znak co tam bude
  45.    str[cnt] = 0; // na koniec este dame nulu, terminator
  46.    
  47.    for (short i = 0; i<cnt; i++){
  48.        // osotrenie, aby som nevysiel z rozsahu niektoreho zo stringov
  49.        if ((strlen(s1) == i) || (strlen(s2) == i)){
  50.            break;
  51.        }
  52.        
  53.        // ak sa pismena rovnaju tak ich dame na poziciu i vo vyslednom retazci (str)
  54.        if (s1[i] == s2[i]){
  55.            str[i] = s1[i];
  56.        }
  57.    }
  58.    
  59.    // vypis vysledneho retazca
  60.    printf("> %s \n", str);
  61.    
  62.    return 0;
  63. }
  64. #######################################################################################################################################
  65. Uloha 2 - dostanem retazec a chcem v kazdom slove napisat pismena odzadu (jednoduche riesenie, treba este nieco osetrtit)
  66.  
  67. #include <stdio.h>
  68. #include <string.h> //nezabudat na importy :)
  69.  
  70. int main()
  71. {
  72.    char str[] = "Ahoj svet, ktory sa ma dnes skvele";
  73.    char *tstr = str; //docasny retazec, ukazuje tam kde povodny
  74.    short cnt = strlen(str);
  75.    
  76.    for (int i = 0; i < cnt; i++){
  77.        if (str[i] == ' '){
  78.            str[i] = 0; // vkladame 0 na miesto medzery
  79.            for (int x = (strlen(tstr)-1); x >= 0; x--){
  80.                printf("%c", tstr[x]);
  81.            }
  82.            printf("\n");
  83.            tstr = (&str[i])+1;
  84.        }
  85.    }
  86.    
  87.    for (int x = (strlen(tstr)-1); x >= 0; x--){
  88.        printf("%c", tstr[x]);
  89.    }
  90.    
  91.    return 0;
  92. }
Add Comment
Please, Sign In to add comment