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

Удаление лишних пробелов в начале и конце строки. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ программа четырехзначное число http://www.cyberforum.ru/cpp-beginners/thread24937.html
Программу в C++ Дано четырехзначное число х. Нужно вывести на экран сообщение о том, сколько в этом числе одинаковых цифр и каково их значение
C++ Как возвратить одномерный массив Есть вопрос. Можно ли возвратить из одной функции в другую, ее вызвавшую, не просто одно значение, а массив значений через return? void main() { ... func(A); } int func(int *S) { .... return A; /*Или что-то в этом роде*/ http://www.cyberforum.ru/cpp-beginners/thread24930.html
C++ API функции для работы с окном
Подскажите, пожалуйста, есть ли API функции в с++, с помощью которых можно закрывать, разворачивать, сворачивать, перемещать и т.п. окно ? Если есть, напишите их или дайте ссылку на источник.
C++ Принадлежность точки к отрезку.
УВАЖАЕМЫЕ ЭКСПЕРТЫ ПОМОГИТЕ УЛУЧшИТЬ АЛГОРИТМ ДЛЯ ДАННОЙ ЗАДАЧИ.... Точки и отрезки (Время: 2 сек) Дано N отрезков на числовой прямой и M точек на этой же прямой. Для каждой из данных точек определите, скольким отрезкам она принадлежит. Точка x считается принадлежащей отрезку с концами a и b, если выполняется двойное неравенство min(a, b) <= x <= max(a, b). Входные данные Первая строка...
C++ Обьём целиндра + 10 r,h, значений и 10 выводов. http://www.cyberforum.ru/cpp-beginners/thread24849.html
Здравствуйте все, прошу прощения если такая тему уже было но найти не могу. Суть в чём, Написать программу которая посчитала бы обьём целиндра И вы водила, его с помощью ФУНКЦИИ (я так понимаю передача данных методом копирования или по ссылке) Я то написал программу, но я меня не было тогда когда была лекция про эти методы, в книгах понять не могу как это делается, собвственно как вывести...
C++ Создание матрицы 5*3 в С++ Добрый день а может вечер, здрасте всем... Прошу помощь мне с задачей если не составит труда вот условие задачи 8.9 Результаты соревнований по прыжкам в длину представлены в виде матрицы 5х3 (5 спортсменов по 3 попытки у каждого). Указать, какой спортсмен и в какой попытке показал наилучший результат. Спасибо всем... подробнее

Показать сообщение отдельно
sledge
0 / 0 / 0
Регистрация: 27.07.2009
Сообщений: 13
14.08.2009, 00:45     Удаление лишних пробелов в начале и конце строки.
Если еще актуально, я просто для себя разбирался, прокомментировал заодно:
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
39
40
41
42
43
#include <iostream.h>
//#include <conio.h>
//#include <string.h>
//#include <alloc.h>
 
char* alltrim( char*string)
{
int i=0,d=0,c=0,g=0,j=0;
while(*string==' ')
{
    c=c+1;      //total_length
    i=i+1;      //spaces_before
    string++;   //было *string++; *string++ - значит получить значение(char)на   которое сейчас указывает string а после этого увеличить указательна на один .
//достаточно просто увеличить указатель
}
while(*string)
{
    if (*string!='\x0')// Этот if не нужен. *string!='\x0' можно перенести в while
    {                  // либо вообще убрать
        if (*string==' ') d=d+1;//spaces_after
        else d=0;
        c=c+1;              //total_length
        string++;           //было *string++;
    }
}
char*p=new char[c-d-i+1];// выделение памяти
for(g=c-i;g>d;g--) p[j++]=*(string-g); // сердце функции хитрое какое :-)
p[j]='\0';
cout<<"_"<<p<<"_"<<endl; //тут выводит всё как надо - "q w e r t y"(без пробелов по бокам)
return p;       // функция возвращает указатель, его нужно присвоить такому же указателю такого ж
                // типа, после окочания работы функии указатель p уничтожается и на выделенную
                //выше память никто не указывает - она утекла.
}
int main(void)
{
//clrscr();
char*x=" q w e r t y ";
//*alltrim(x);  тут ты просто вызвал функцию она себе отработала, создала локальную переменную p,
                //которая после возврата из функции умерла.
char *result;
result=alltrim(x); //  тут обЪявляется и инициализируется указатель который и словит значение p.
cout<<"_"<<result<<"_"; //а тут почему-то уже выводит - " q w e r t y " (с пробелами по бокам)return 0;
}
 
Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru