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

Поменять местами первое и последнее слово в строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ DevC++, возможно ли подключить русификатор? http://www.cyberforum.ru/cpp-beginners/thread688631.html
В Dev c++ возможно подключить русификатор?
C++ Строку в нижний регистр вводится русская строка (слово ) кодировка 1251, необходимо привести ее к нижнему регистру #include <ctype.h> #include <locale.h> #include <string> #include <iostream> #include <algorithm> int main (){ http://www.cyberforum.ru/cpp-beginners/thread688612.html
Создание даты и времени C++
Доброго времени суток! Необходимо в программе выводить данные о текущей дате и времени, однако столкнулся с проблемой: мне нужны только часы и минуты для времени и число/месяц для даты. Что имеется сейчас: void __fastcall TForm1::Timer1Timer(TObject *Sender) { Label1->Caption=Now().TimeString(); } void __fastcall TForm1::Timer2Timer(TObject *Sender) {
C++ Обратный корень
Пожалуйста, помогите решить задачу, не получается уже месяц (если решать с массивами, то нужно создавать по условию задачи массив размером от 0 до 10 в 18 степени - получается слишком большой массив). Если кто догадывается, то пожалуйста пришлите код к непокорной :) задаче , не дающая покоя. Буду очень благодарен. 1001. Обратный корень Ограничение времени: 2.0 секунды Ограничение...
C++ Массивы объектов в С++ http://www.cyberforum.ru/cpp-beginners/thread688578.html
Как работать с массивом объектов (классы)? Приведите пожалуйста какой-то простой пример . Заранее огромное спасибо .
C++ Одномерные массивы: найти средние арифметическое тех элементов, которые меньше нуля Ввести последовательность с 6 действительных чисел и найти средние арифметическое тех её элементов которые меньше нуля подробнее

Показать сообщение отдельно
Ded_Vasilij
 Аватар для Ded_Vasilij
230 / 212 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
10.11.2012, 09:24  [ТС]     Поменять местами первое и последнее слово в строке
и еще вопросик. попытался сделать вот так:

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
34
35
36
37
38
int copysubstr(char* str, char* rez, int x1,int x2, int i)
{
    for(int j = x1; j < x2; i++,j++)
    {
        rez[i] = str[j];
    }   
    return i;
}
char* swap(char* str)
{
    int fb = 0;                                                             //начало первого слова
    int fe = 0;                                                             //конец первого слова
    for(fb = 0; str[fb] == ' ' && str[fb] != 0; fb++);                      // определяем позицию начала первого слова      
    for(;str[fe] != ' '; fe++);                                     //определяем позицию конца первого сллова       
    int len = strlen(str);          // считаем длину строки
    int kb = 0;
    int ke = 0;
    for (ke = len-1; str[ke] == ' '; ke--); 
    ke++;   
    for (kb = ke; str[kb] != ' '; kb--);    
    kb++;   
    char *rez = new char [len + 1]; 
    int i = 0;
    i = copysubstr(str,rez,0,fb,i); 
    rez[i]='\0';    
    i = copysubstr(str,rez,kb,ke,i);    
    rez[i]='\0';    
    //i++;
    int temp = kb-fe;
    
    i = copysubstr(str,rez,kb-fb,kb,i); 
    rez[i]='\0';    
    /*i = copysubstr(str,rez,fb,fe,i);  
    rez[i]='\0';
    i = copysubstr(str,rez,i,len,i);
    rez[i]='\0';*/  
    return rez;
}
только теперь с индексами не могу разобраться. если последнее слово длиннее первого, то уго просто затирает. Как быть?
 
Текущее время: 08:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru