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

Замена слов в строке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ зеркальное отображение в С http://www.cyberforum.ru/cpp-beginners/thread435191.html
Дана задача сделать зеркальное отображение двумерного массива M*N Нужно поменять 1-ый с последним, 2-ой с предпоследним и т.д.
C++ Найти произведение ряда Люди помогите пожалуйста с двумя задачками: 1. В матрице размером 4на5 найти наибольший среди наименьших элементов столбцов. 2. 2. Вычислить значение min (x(0)*x(1),x(1)*x(2),x(2)*x(3),....,x(n-3)*x(n-2),x(n-2)*x(n-1)), где x(i) - элементы вещественного массива x из n элементов. Массив содержит 18 элементов. Поиск максимального значения оформить в виде функции. http://www.cyberforum.ru/cpp-beginners/thread435188.html
Хранение и обработка данных с использованием линейных списков C++
Люди, помогите пожалуйста!!! Дали задание к курсовой работе. Сделать надо любое из двух (какое легче) но сделать не могу ни 1, ни 2 Заранее спасибо!
C++ Проверить правильность написания коментариев
Доброго времени суток! Проверьте, пожалуйста, правильно ли я понимаю фрагмент кода программы, проверьте комментарии правильно написаны или нет while (i1<size && i2<set1.size)//пока не достигнуть конец первого и конец второго массива { if (data==set1.data)//если первый элемент 1 массива равен первому элементу 2 массива { un=data;//то в новый массив записываем первый элемент, и...
C++ Реализация очереди массивом http://www.cyberforum.ru/cpp-beginners/thread435176.html
Как реализовать очередь с помощью массива????
C++ очередь, стек, вектор, множество не могу разобраться, если очередь и стек понятно что такое, то вектор и множество, я начинаю не понимать....вот если есть кусок кода с очередью и стеком, с вектором и множеством как? struct list_element { func* listfunc; list_element* next; list_element():listfunc(0),next(0){} }; подробнее

Показать сообщение отдельно
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
26.01.2012, 17:35     Замена слов в строке
Добрый вечер. Помогите, пожалуйста советом или кодом:
требуется полученную строку изменить так, чтобы первое и среднее слово поменялись местами.
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
25
26
27
28
29
30
31
32
33
void f(char *s)
{
    
    int len=strlen(s);
    int na4slovo1=0,konezslovo1=0,na4slovo2=0,konezslovo2=0,kolslov=0;
    for(int k=0;k<len;k++)
    {
        if(s[k]==' ' && s[k+1]!=' ')    //нашли количество слов
            kolslov++;
    }
    if(kolslov>2)
    {
        int l=0;
        kolslov/=2;
            for(int k=0;k<len;k++)
            {
                if(s[k]!=' ' && k!=len-1 && s[k+1]==' ')l++;        //текущее слово++
                if(s[k]!=' ' && k!=len-1 && s[k+1]==' '&& konezslovo1==0)//конец первого слова
                {
                    konezslovo1=k+1;
                }
                if(s[k]==' '&& kolslov==l && s[k+1]!=' ')//начало второго - если текущее слово - центральное
                    na4slovo2=k+1;
                if(k>na4slovo2 && s[k+1]==' '&& na4slovo2!=0)//конец второго 
                {
                    konezslovo2=k+1;
                    break;
                }
            }                                  //и так: у нас есть уже координаты первого и среднего слова, 
//теперь нужно: поместить в новую строку все слова, но: среднее и первое поменять местами.
 
        }
}
Добавлено через 20 часов 53 минуты
Помогите закончить,пожалуйста разбил всю строку на слова и поместил их в массив слов х. теперь необходимо обнулить строку s и в нее внести слова в порядке: srslovo,1,2,3,4,5,6....0,.....n-1,n и установить конец строки, подскажите как это сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void f(char *s)
{
    {
                char *x[512]={0};
                char *p=strtok(s, " ");
                int i=0;
                while(p)
                {
                    x[i++]=p;
                    p = strtok(NULL, " ");
                }
                int srslovo=i/2;
                strcpy(s,"");//очистил
                                                //здесь надо к пустой строке добавить слово x[srslovo]
                i=1;
                   while(x[i]!=0)     //в цикле дописать слова
                    {
                        
                    }
                    
                             //дописать конец строки. (результат буду сохранять в файле. каждая строка - должна быть новой строкой в файле, то есть в конце строки должен быть знак перехода на новую строку. как его дописать -ХЗ
            }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru