Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Labs - val / Lab1

.cpp
Скачиваний:
5
Добавлен:
15.06.2014
Размер:
2.96 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <pcreposix.h>

class String
{
    protected:
        int len;
        int result;
        char *pdest;

    public:
        char str[256];
        int getLenght()
        {
            len = strlen( str );
            return len;
        }
        int getFirstEntry(int ch)
        {
            pdest = strchr( str, ch );
            if (pdest)
                result = (int)(pdest - str + 1);
            else
                result = 0;
            return result;
        }
        int getLastEntry(int ch)
        {
            pdest = strrchr( str, ch );
            if (pdest)
                result = (int)(pdest - str + 1);
            else
                result = 0;
            return result;
        }
        int replaceString(char *pattern, char *pattern_replace)
        {
            char temp_str[256];
            result = 0;
            int number = 0;
            while(1){
                pdest = strstr( str, pattern );
                if( pdest==NULL ){break;}
                result = (int)( pdest - str );
                strncat( temp_str, str, result );
                strcat( temp_str, pattern_replace );
                strcat( temp_str, str + result + strlen(pattern) );
                strcpy( str, temp_str);
                strcpy( temp_str, "" );
                number++;
            }
            return number;
        }
};

int main()
{
 String inputString;

 char s[256];
 char pattern[256];
 char pattern_replace[256];
 int chars[2] = {'a','e'};
 int numberString = 2;
 int numberChar = 2;
 int entry = 0;

 // Lab 1.1
/*
 for (int i=0; i<numberString; i++){
     printf( "\nInput string to be searched: ");
     scanf( "%s", s);
     strcpy(inputString.str, s);
     for (int j=0; j<numberChar; j++){
        entry = inputString.getFirstEntry(chars[j]);
        if (entry!=0){
            printf( "Result: first %c found at position %d\n",
                        char(chars[j]),
                        inputString.getFirstEntry(chars[j])
                   );
            printf( "Result: last %c found at position %d\n",
                        char(chars[j]),
                        inputString.getLastEntry(chars[j])
                 );
        } else {
            printf( "Result: %c not found \n",chars[j]);
        }
     }
     printf( "Result: string length %d\n", inputString.getLenght());
 }
 */

 //Lab 1.2
 printf( "\nInput string to be replaced: ");
 scanf( "%s", s);
 strcpy(inputString.str, s);
 printf( "\nInput pattern to be replaced: ");
 scanf( "%s", pattern);
 printf( "\nInput replace pattern: ");
 scanf( "%s", pattern_replace);
 printf( "\nNumber of coincidence: %d", inputString.replaceString(pattern,pattern_replace) );
 printf( "\nReplaced string: %s", inputString.str );
 getchar(); getchar();
}
Соседние файлы в папке Labs - val
  • #
    15.06.2014808 б5example.cpp
  • #
    15.06.201423 б7example.txt
  • #
    15.06.201498 б5Lab1.bpf
  • #
    15.06.20143.38 Кб5Lab1.bpr
  • #
    15.06.20142.96 Кб5Lab1.cpp
  • #
    15.06.20148.55 Кб5Lab1.obj
  • #
    15.06.2014876 б5Lab1.res
  • #
    15.06.201465.54 Кб5Lab1.tds
  • #
    15.06.20142.96 Кб6Lab1.~cpp
  • #
    15.06.20141.14 Кб5Lab2.cpp