1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем Whatka, 27 ноя 2011.

  1. Whatka

    Whatka Well-Known Member

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

    dark файл so слово planet doom end
    вот мой код:
    Код:
    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 Гость

    Репутация:
    0
    мне код не нравится, незнаю почему, но читать его совсем не хочется.
    заменить на что?
     
  3. rrrFer

    rrrFer Гость

    Репутация:
    0
    Код:
    #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

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


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



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

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