Форум программистов, компьютерный форум CyberForum.ru

Обойти использование string.h - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Библиотека с сортировкай !!!!! http://www.cyberforum.ru/cpp-beginners/thread316314.html
#include < iostream > #include < conio.h > #include < windows.h > #include < iomanip > using namespace std; static short posionITR = 0 ; const short menu_size = 7 ; struct ID {
C++ даны 2 строки даны 2 строки символов S и t. сравнить эти строки используя указатели. функция выдает положительное, отрицательное или нулевое значение в зависимости от того, будет ли S Лексикографически <, =, >t. возвращаемое значение получается путем вычитания первых не совпадаюших символов из s и Т. http://www.cyberforum.ru/cpp-beginners/thread316310.html
C++ Прблема с ПК
Помогите пожалуйста. Была хр винда 2 года, было все нормально. Недавно начались тормоза в играх, таких как FLatOut2 Nfs MostWanTed и тд. почему-то в cs 1.6 и warcraft не лагает. А лаги такие... Захожу в игру, играю 10-15 мин и начинает тормозить, причем так, что ничего не можешь сделать. Тормоза продолжаются 1-2 мин, потом норм, как будто ничего не было. И так пока игрыешь происходит каждые 5-6...
C++ Программы разветвляющихся структур.
Здравствуйте, кому не сложно не могли бы вы помочь мне с решением лабораторной работы. Заранее благодарю. Задание Вычислить значение функции при заданных значениях параметров. Значения параметров задаются пользователем с клавиатуры. 15. U=min {x,y,z}
C++ Массивы, пж, срочно!( http://www.cyberforum.ru/cpp-beginners/thread316293.html
Ребят, помогите пж( 1. Cгенерировать массив из 30 чисел, распечатать их по 10 в строке. Найти min, среднее значение, сумму чётных чисел. 2. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными 2 индексами, а затем — с нечетными1|четными 2.
C++ Алгоритм многопутевого слияния Задание: Отсортировать текстовый файл,содержащий целые числа,в порядке убывания методом многопутевого слияния. Если поможите буду очень признателен. подробнее

Показать сообщение отдельно
x-positive
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 21
09.06.2011, 02:22     Обойти использование string.h
Мне нужно работать со строками, но не используя <string.h>
В частности я создал две функции, которые нужны мне при работе.
Первая должна полностью копировать действие strstr(), а вторая должна вставлять в строку s подстроку s1 на место, куда указывает указатель p, при этом остальная часть строки "сдвигается" на столько символов вправо, сколько содержит подстрока s1.

Но ни та ни другая не выполняют свою работу.
Помогите мне найти ошибки или предложите свой вариант, как можно выполнить те же действия.

Вот эти функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char* StrStr(char*s,char*s1)
{
 char *p="";
 int i,j,scop=0,found=0;
 
 for (i=0; s1[scop]!='\0'; i++)
 {
  if ( s[i] != s1[scop] ) { p=""; scop=0; found=0; }
  else { scop++; if (p=="") { for (j=0; s[j]!='\0';j++) p[j]=s[j+i]; found=1; p[j]='\0'; }}
 }
 if (!found) p=NULL;
 return p;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
char* StrIns(char*s,char*s1,char*p)
{
 int i,j,len_P,len_S;
 char *pcopy=p;
 p=s;
 
 for(i=0; s[i]!='\0'; i++); len_S=i;
 for(i=0; p[i]!='\0'; i++); len_P=i;
 
 for(i=0; len_S-len_P; i++) p[i]=s[i];
 p[i]='\0';
 
 for(i=0; p[i]!='\0'; i++); len_P=i;
 
 for(i=0; s1[j]!='\0'; i++) p[i+len_P]=s1[i];
 p[i]='\0';
 
 for(i=len_P; p[i]!='\0'; i++); len_P=i;
 
 for(i=0; pcopy[j]!='\0'; i++) p[i+len_P]=pcopy[i];
 s[i]='\0';
 
 return p;
}
Добавлено через 2 часа 20 минут
Я нашёл функцию, подобную strtstr, но понять всё не в состоянии.
То есть понимаю как где что работает, но когда пытаюсь поменять хоть что нибудь на более простенькое для меня, но с большим количеством строк - перестаёт работать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char* StrStr(char*s, char*s1)
{
 char *copy_s = s1, *copy_s1;
 while (*s)
  {
   copy_s1 = s;
   while(*(s++) == *(s1++))
    {
     if (!(*s1)) return copy_s1;
     if (!(*s)) return NULL;
    }
   s1 = copy_s;
  }
 return NULL;
}
И для меня остаётся открытым вопрос - как вставить подстроку в строку с заданной указателем позиции. (То есть после поиска функцией StrStr() мы получаем указатель на вхождение подстроки, в этом месте мне нужно вставить подстроку, скажем пробел или набор символов. При этом строка динамически увеличивает свой размер. Поможете разобраться?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru