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

Работа со строками, проблема окружить символ пунктуции - C++

Восстановить пароль Регистрация
 
Alekscs
Сообщений: n/a
11.12.2008, 20:49     Работа со строками, проблема окружить символ пунктуции #1
Задание
***
Для ввода всех строк исп-ть один и тот же симв-ый массив tmp[80]
Обработку строк производить при помощи указателей внутри выделенного блока памяти. Запрещается исп-ть дополнительные массивы и блоки.
Условия ввода строк: Вводить и обрабатывать строки в цикле (while,for,do while) до тех пор пока длина строки больше 7
Условие обработки строк: Удалить строчные буквы. Знаки пунктуации окружить символами '!'
***
Программка работает с буквами нормик, но проблема со знаками препинания. НЕЛЬЗЯ исп-ть доп. массивы и блоки...Без доп массива не могу придумать, как окружить символ знаками...
Вот мой текстик... Буду благодарен за идею реализации этого пустяка внутри выделенного блока памяти
Заранее спасибо!

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
char tmp [80];
int len;
char * pTmp;
do
{
cout << "Enter string ->"<< endl;
cin.getline (tmp, 80);
len=strlen (tmp);
int l=0, k=0;

while (tmp[l])
{
if (ispunct (tmp[l]))
{
k++;
}
l++;
}

pTmp= new char [strlen(tmp)+(2*k)+1];
strcpy (pTmp, tmp);
int j,i;

cout<< "dlina stroki->"<<len<< endl;

for (j=0,i=0; pTmp[i];i++)
if (!(pTmp[i]>='a'&&pTmp[i]<='z'))
pTmp[j++]=pTmp[i];
pTmp[j]='\0';

cout<<pTmp<<endl;


//Вот здесь начинаются траблы, нет идей, чтобы нормально работало, плиз подскажите
const char znak='!';
i=0;
j=0;
int r=0, lenn;
while(i<len)
{
if (ispunct (pTmp[i]))
{
if (pTmp[i]!=znak)
{
lenn=strlen (pTmp);
for (j=(len+2+1); j<i-2;j--)
{
pTmp[j]=pTmp[j-2];
}
pTmp[i]=znak;
pTmp[i+3]=znak;
i++;
}
}

i++;
}
cout<< "Output string"<<endl;
cout<<pTmp<<endl;
}
while (len>7);
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2008, 20:49     Работа со строками, проблема окружить символ пунктуции
Посмотрите здесь:

C++ работа со строками
C++ Работа со строками в СИ++
C++ Лишний символ при работе со строками
C++ Работа с строками
Проблема со строками C++
Проблема со строками C++
Задачка со строками(Требуется вставить символ между всеми парами соседних символов в строке) C++
C++ Работа со строками
C++ Программа со строками. Определить длинну введенной строки L и если длина L кратна 3 удалит каждый третий символ
C++ Работа со строками
Работа со строками С++ C++
C++ Работа со строками. Как удалить символ с строки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 04:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru