Консультация № 67060
15.12.2006, 08:37
0.00 руб.
0 1 1
помогите пожалуйста написать программу:

Удали символы, стоящие перед символом *. Расмотреть случай наличия в последовательности нескольких символов *.

Обсуждение

Неизвестный
15.12.2006, 09:42
общий
это ответ
Здравствуйте, Андрюхаха!

Ответ в приложении.

Успехов!

P.S.: Обратите внимание, что система взаимопомощи RusFAQ, является системой помощи в обучении, а не системой написания программ.



Приложение:
#include <stdio.h>#include <string.h>const char buffer[100] = {"*dfgsd* dfvbsd*dsafb sdfb*sdsfb dbf*"};// Тестовая строкаchar *delBeforeAsterix(char *str) {// Удаление символа, находящегося перед // "звёздочкой" (со смещением остальной части строки) char *sptrBase = str, *sptr = str;// Инициализируем рабочие указатели while (*sptr) {// Пока ASCIIZ-строка НЕ кончилась if (!(*(sptr + 1) == ‘*‘)) { // Нашли позицию, где следующий символ - звёздочка if (sptrBase != sptr) *sptrBase = *sptr; sptrBase++;// Смещаем базу (позицию "куда переносим") };// if (!(*(sptr + 1) == ‘*‘)) sptr++;// Смещаем указатель позиции "откуда читаем" };// while (*sptr) *sptrBase = 0x00;// Помечаем конец строки return str;// Возвращаем указатель на обработанную строку};// of char *delBeforeAsterix(char *str)void main(void) { printf("\n============="); printf("\nSource : %s", buffer);// Выводим исходную строку delBeforeAsterix((char *) buffer);// Делаем преобразование строки printf("\nDestination: %s", buffer);// Печатаем обработанную строку};// void main(void)
Форма ответа