Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Функция для отбрасывания конечных пробелов


Автор: SaFy 31.5.2007, 12:54
Люди добрые!!!Помогите! Нужно написать функцию для отбрасывания всех конечных пробелов в строке.Например "Ива_","Ива" 

Автор: MAKCim 31.5.2007, 13:03
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Alexeis 31.5.2007, 13:10

M
Alexeis
Модератор: Название темы должно отражать ее суть!

Автор: Dov 31.5.2007, 23:45
Код
// 'обрезает' пробелы и символы табуляции в конце строки
char* Rtrim(const char* str)
{
    char* retstr;
    int   size;
    
    for(const char* p = str + strlen(str); *(p - 1) == ' ' || *(p - 1) == '\t' && (p - 1) > str; p--);
    
    size   = p - str;
    retstr = new char[(size + 1) * sizeof(char)];
    strncpy(retstr, str, size);
    *(retstr + size) = '\0';
    
    return retstr;
} 

int main()
{
    char  str[] = "qwerty    \t";
    char* pStr;

    cout << str << str;
    pStr = Rtrim(str);
    cout << pStr << pStr;
    
    delete[] pStr;

    return 0;    
}

Автор: Oleg_Ci 1.6.2007, 15:20
Код

#include <stdio.h>

void costrator( char * str ){
    while( *str++ );
    for( str -= 2; *str == ' ' || *str == '\t' || *str == '_'; str-- );
    *(str+1) = '\0';
}

int main(){
    char str[] = "string _    _";
    costrator( str );
    puts( str );
    getchar(); // пауза
    return 0;
}

Автор: Dov 1.6.2007, 16:54
Oleg_Ci, это, по моему скромному мнению, не очень хорошее решение. smile 
Потому, что эту ф-цию нельзя будет использовать ни в таком виде:
Код

    char* str = "string _    _";
    costrator(str);

ни в таком:
Код
costrator("string _    _");

 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)