Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Строки в С++ просинькая программа:

62K
09 ноября 2010 года
vaselo
6 / / 09.11.2010
Уважаемые форумчане, прошу вас помочь в написании консольного приложения с++: надо в строке выполнить замену точки на многоточие, при этом не заменять, если будет многоточие, тоесть вместо ... не должно появиться ........., а чтоб осталось ... а . стало ...
пробовал написать такое, но работала она у меня лишь до первой замены:
#include <conio.h>
int main(void)
{
char str[32] = "Hello, World", result[64], *pc;
/* Заменяем букву W на три точки */
pc = strchr(str, 'W');
*pc++ = '\0';
strcat(strcat(strcpy(result, str), "..."), pc);

printf(result);
getch();
return 0;
}


и такое:

#include <iostream>
#include <cctype>
#include <string>
using namespace std;

int main()
{ setlocale (LC_ALL, "Russian");
char s[40] ="Hello... World.",p;
p=*strchr(s, 'W');
cout<<"Ваша начальная строка:"<<endl<<s<<endl;
char *p=s;
char *q=s;
while (p)
{
q++;
if(p='.' && p++!='.') p++;//только одна точка
14K
09 ноября 2010 года
Fenja
138 / / 20.03.2009
Тебе нужны 2 массива символов. До тех пор, пока не встретилась точка, копируешь символы из 1 массива во 2. Как только встретилась точка, смотришь следующий символ. Если следующий символ не точка, то копируешь во 2 массив 3 точки, а если точка, то копируешь во 2 массив 3 точки смещаешься в 1 массиве на 3 позиции вправо.
62K
09 ноября 2010 года
vaselo
6 / / 09.11.2010
Цитата: Fenja
Тебе нужны 2 массива символов. До тех пор, пока не встретилась точка, копируешь символы из 1 массива во 2. Как только встретилась точка, смотришь следующий символ. Если следующий символ не точка, то копируешь во 2 массив 3 точки, а если точка, то копируешь во 2 массив 3 точки смещаешься в 1 массиве на 3 позиции вправо.



не прошу делать всю программу, напиши хотя бы как это реализуется: копирование до точки, вставка точки, смещение.

6.0K
10 ноября 2010 года
artyom-tyanutov
107 / / 10.07.2006
Если С++ - то почему бы не использовать std::string?
65K
11 ноября 2010 года
asics
3 / / 11.11.2010
Код:
//////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <cctype>
//////////////////////////////////////////////////////////////////////////
typedef std::string T_str;
//////////////////////////////////////////////////////////////////////////
int main()
{
    T_str str("ololo.ahah...eheheh..blablabla.wtf");
    for(int i = 0; i < str.size(); i++)
    {
        if(str == '.' && isalpha(str[i+1]) && isalpha(str[i-1]))
        {
            str = str[i+1] = str[i-1] = '.';
        }
    }
    std::cout << str;
    return 0;
}
/////////////////////////////////////////////////////////////////////////
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог