Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- char* reverse_sub(char* str, int start, int end);
- int str_len(char* str);//количество символов в строке
- int str_cmp(char* str1, char* str2);//сравнивает 2 строки
- char* str_cpy(char* str1, char* str2);//копирует из 1 во 2
- char* str_cat(char* str1, char* str2);//добавляет к первой вторую
- int chr_str(char* str,char ch);//поиск символа в строке
- char* str_str(char* str1, char* str2);//поиск строки в строке ,возвращает адрес начала повторения ???
- int sum_of_decimals(char* str);//oo111ooo111->222 ???
- int sum_of_digits(char* str);//ooo123oo4->10
- int words_count(char* str);// подсчет слов с учетом разделителей ";,.!_- ???
- int longest(char* str);//самое длинное слово
- int shortest(char* str);//само короткое слово
- char* remove_dup(char* str);//удаляет повторение
- char* remove_char(char* str, char ch);//удаляет выборочный символ
- char* reverse(char* str);//переворот строки
- char* reverse_sub(char* str, int start, int end);//переворот подстроки
- void swap(char* a, char* b);
- char* reverse_words(char* str);
- void print_words(char* str);
- char* remove_dup(char* str);//abcabc->abc
- int main()
- {
- char ch = 'a';
- char str1[100] = "hkav56o44lox";
- char str2[100] = "kavo";
- char str3[100] = "Hello.My name is Ilya t da";
- //printf("symbols in string %d", str_len(str2));
- //str_cpy(str1, str2);
- //str_cat(str1, str2);
- //printf("%d",str_cmp(str1, str2));
- //printf("%s", str1);
- //printf("%d",chr_str(str1, ch));
- //printf("%d", str_str(str1, str2));
- //printf("%d", sum_of_digits(str1));
- //printf("%d", sum_of_decimals(str1));
- //printf("%d", words_count(str3));
- //printf("%d", longest(str3));
- //printf("%d", shortest(str3));
- //printf("%s", remove_char(str3,ch));
- //printf("%s", reverse(str1));
- return 0;
- }
- int str_len(char* str)
- {
- int i = 0;
- while (str[i])
- {
- i++;
- }
- return i;
- }
- char* str_cpy(char* str1, char* str2)
- {
- int i = 0;
- while (str2[i])
- {
- str1[i] = str2[i++];
- }
- str1[i] = '\0';
- return str1;
- }
- char* str_cat(char* str1, char* str2)
- {
- int i = 0,j = 0;
- while (str1[i])
- {
- i++;
- }
- while (str2[j])
- {
- str1[i + j] = str2[j];
- j++;
- }
- return str1;
- }
- int str_cmp(char* str1, char* str2) {
- int i = 0;
- while (str1[i] && str2[i]) {
- i++;
- }
- if ((str1[i] - str2[i])) return 1; else return 0;
- }
- int chr_str(char* str, char ch)
- {
- int i = 0;
- while (str[i]) {
- if (str[i] == ch)
- {
- return i;
- }
- else i++;
- }
- return -1;
- }
- char* str_str(char* str1, char* str2)
- {
- int i = 0, j = 0, flag = 1;
- while (str1[i])
- {
- flag = 1;
- j = 0;
- while (str2[j])
- {
- if (str1[i+j]!=str2[j])
- {
- flag = 0;
- }
- j++;
- }
- if (flag) return (&str1[i]);
- i++;
- }
- return NULL;
- }
- int sum_of_digits(char* str)
- {
- int sum=0, i=0;
- while (str[i])
- {
- if ((str[i]>='0')&&(str[i]<='9'))
- {
- sum = sum + (str[i] - '0');
- }
- i++;
- }
- return sum;
- }
- int sum_of_decimals(char* str)
- {
- int sum = 0, i = 0, dec =0;
- while (str[i])
- {
- if ((str[i] >= '0') && (str[i] <= '9'))
- {
- dec *= 10;
- dec += (str[i] - '0');
- }
- else
- {
- sum += dec;
- dec = 0;
- }
- i++;
- }
- sum += dec;
- return sum;
- }
- int words_count(char* str)
- {
- int i = 0, counter = 0, in_word = 1;
- char sep[]= "., \n\t()!?";
- while (str[i])
- {
- if ((chr_str(sep, str[i])) != -1)
- {
- if (in_word)
- {
- counter++;
- in_word = 0;
- }
- }
- else
- {
- in_word = 1;
- }
- i++;
- }
- if (in_word)
- {
- counter++;
- }
- return counter;
- }
- int longest(char* str)
- {
- int i = 0, max_len = 0, current = 0, in_word = 1;
- char sep[] = "., \n\t()!?";
- while (str[i])
- {
- if ((chr_str(sep, str[i])) != -1)
- {
- if (in_word)
- {
- if (current > max_len)
- {
- max_len = current;
- }
- current = 0;
- in_word = 0;
- }
- }
- else
- {
- current++;
- in_word = 1;
- }
- i++;
- }
- if (in_word)
- {
- if (current > max_len)
- {
- current = max_len;
- }
- }
- return max_len;
- }
- int shortest(char* str)
- {
- int i = 0, min_len =100, in_word = 1, current = 0;
- char sep[] = "., \n\t()!?";
- while (str[i])
- {
- if ((chr_str(sep, str[i])) != -1)
- {
- if (in_word)
- {
- if (current < min_len)
- {
- min_len = current;
- }
- current = 0;
- in_word = 0;
- }
- }
- else
- {
- current++;
- in_word = 1;
- }
- i++;
- }
- if (in_word)
- {
- if (current < min_len)
- {
- min_len = current;
- }
- }
- return min_len;
- }
- char* remove_char(char* str, char ch)
- {
- int i = 0,j=0;
- while (str[i])
- {
- if (str[i] != ch)
- {
- str[j] = str[i];
- j++;
- }
- i++;
- }
- str[j] = '\0';
- return str;
- }
- char* reverse_sub(char* str, int start, int end)
- {
- while (start < end)
- {
- swap(str + start++, str + end--);
- }
- return str;
- }
- void swap(char* a, char* b)
- {
- char temp = *a;
- *a = *b;
- *b = temp;
- return;
- }
- char* reverse(char* str)
- {
- return reverse_sub(str, 0, str_len(str) - 1);
- }
- char* reverse_words(char* str)
- {
- }
- char* remove_dup(char* str)
- {
- }
- void print_words(char* str)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement