Работа Со Строкой

Тема в разделе "C/C++/C#", создана пользователем Whatka, 27 ноя 2011.

  1. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    В строке заменить слова,длина которых
    больше длины последнего слова.
    к примеру есть строка(str1):
    (через пробелы):

    dark файл so слово planet doom end
    вот мой код:
    Код (C++):
    len=strlen(str1);
    int a(0),b(-1),d;
    for(i=0;i<len-1;i++)
    {
    if(str1[i]==' ')
    {  
    b++;
    if(a>h)
    {
    d=i;
    while(a!=0)
    {
    a--;
    str1[i]='_';
    i--;
    }
    i=d;
    }
    }  
    else
    a++;

    }
    cout<<"Str1:"<<str1<<endl;
    Вот что получается:
    d____ф____so_______p______d____end
    Надо чтобы получалось:
    __________so___________________end



    подскажите где неправильно
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    мне код не нравится, незнаю почему, но читать его совсем не хочется.
    заменить на что?
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    #include <iostream>
    int main() {
    char    *s;
    int     i, max, t;

    s = new char[ 255 ];

    std ::cin .getline( s, 255 );

    max = 0;
    for( i = 0; s[ i ]; ) {
    while( ' ' == s[ i ] )
    i ++;
    for( t = 0; s[ i ] && ' ' != s[ i ]; i ++ )
    t ++;
    if( t > max )
    max = t;
    }

    for( i = 0; s[ i ]; ) {
    while( ' ' == s[ i ] )
    i ++;
    for( t = 0; s[ i ] && ' ' != s[ i ]; i ++ )
    t ++;
    if( t < max )
    for( i -= t; s[ i ] && ' ' != s[ i ]; i ++ )
    s[ i ] = ' ';
    }

    std ::cout .write( (char*) s, i );

    delete[] s;

    return 0;
    }
    блин, я не вчитался в задание, тут на соответствующее количество пробелов заменяются те слова, длина которых меньше длины самого длинного слова ).
    Сам переделать сможешь? )
     
  4. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    да спасибо
    очень помог :facepalm:


    (не могу добавить рейтинг баг какой-то показывает ток 4 сообщения у меня)



    *** добавишь завтра. сообщения поправим (lazybiz)
     
Загрузка...

Поделиться этой страницей