Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2015, 12:57   #1
vovamakr
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 41
По умолчанию Нужно написать функции с рядком

Нужно написать функции с рядком такие как, вставка в конец рядка и в ставка в рядок , удаление значения. Правильно я сделал? Проверял, все норм работает. Но может есть баги?
Код:
void Append(String* string, char ch)
{
	string->str = (char*)realloc(string->str, string->capacity * sizeof(char));
	string->str[string->length] = ch;
	++string->length;
}

void Append(String* string1, const String* string2)
{
	string1->str = (char*)realloc(string1->str, string1->capacity * sizeof(char));
	for (unsigned index = 0; index < string2->length; ++index)
		string1->str[string1->length + index] = string2->str[index];
	string1->length = string1->length + string2->length;

}

void Insert(String* string, unsigned index, char ch)
{
	string->str = (char*)realloc(string->str, string->capacity * sizeof(char));
	for (unsigned current = string->length; current > index; --current)
		string->str[current] = string->str[current - 1];
	++string->length;
	Set(string, index, ch);
}
void Remove(String* string, unsigned index)
{
	for (unsigned current = index + 1; current < string->length; ++current)
		string->str[current - 1] = string->str[current];
	--string->length;

}

Последний раз редактировалось vovamakr; 17.11.2015 в 13:24.
vovamakr вне форума Ответить с цитированием
Старый 17.11.2015, 13:16   #2
vovamakr
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 41
По умолчанию

в функциях Append еще нужно ссувать "\0", как это сделать?
vovamakr вне форума Ответить с цитированием
Старый 17.11.2015, 15:18   #3
vovamakr
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 41
По умолчанию

Исправил, теперь зациклывание . Неужели никто не знает как сделать?
Код:
void Append(String* string, char ch)
{
	if (string->capacity < string->length)
	{
		string->capacity = 2 * string->capacity;
		string->str = (char*)realloc(string->str, string->capacity * sizeof(char));
	}
	string->str[string->length] = ch;
	string->str[string->length + 1] = '\0';
	++string->length;
}
vovamakr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно написать простенькое веб-приложение(возможно и обычное подойдет), выполняющее функции банка. Marat777 Помощь студентам 1 02.11.2015 17:57
Задачи на двумерный массив и нужно программу написать для определения функции заданной в делфи. Savako Помощь студентам 2 29.05.2013 21:05
Работа с рядком (string) FDCastro Помощь студентам 0 21.01.2013 16:25
Представить множество битовым рядком Pein95 Общие вопросы C/C++ 4 19.01.2013 19:41
Нужно Написать программу для вычисления функции Лена Самохина Microsoft Office Word 0 02.12.2010 02:40