Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > ПОМОЩЬ СТУДЕНТАМ > Прошу помощи со строками


Автор: Muereta 10.06.19, 13:46
user posted image
До этого пыталась сделать, но однако не получается
Вот какой код был:
user posted image
p.s. Преподаватель сказал что мы StringBuilder не изучали, поэтому его нельзя использовать :(

Автор: Славян 10.06.19, 15:34
На Си как-то так:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    void Zamena( char *s)
    {
     char c[2]={'>','<'};
     for( int k=0; 0!=*s; s++) if( '!'==*s ) *s = c[(++k)&1];
    }

Автор: shm 10.06.19, 17:44
Цитата Muereta @
Преподаватель сказал что мы StringBuilder не изучали, поэтому его нельзя использовать

Я так понимаю, мы должны догадаться что вы изучали?
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    string s = "a!b!!cde!";
    int cnt = 0;
     
    // method 1
    char[] stringArray = s.ToCharArray();
    for(int i = 0; i < stringArray.Length; i++)
        if (stringArray[i] == '!')
            stringArray[i] = (((cnt++ % 2) == 0) ? '<' : '>');
    string s1 = new string(stringArray);
    Console.WriteLine(s1);
     
    cnt = 0;
    // method 2
    string s2 = String.Copy(s);
    for(int i = 0; i < s2.Length; i++)
        if (s2[i] == '!')
            s2 = s2.Remove(i, 1).Insert(i, (((cnt++ % 2) == 0) ? '<' : '>').ToString());
    Console.WriteLine(s2);

Автор: JoeUser 12.06.19, 06:12
Цитата Славян @
На Си как-то так:

Надо тебе переделать, видать, слегка.
Ты ищешь четность в позиции '!' в строке, а нужно их перебирать.
Где первое вхождение - нечетное, следующее четное, следующее - нечетное ... & etc

Автор: Славян 12.06.19, 16:58
Joe, а можно поподробнее, а то я не догоняю?!

Автор: JoeUser 12.06.19, 17:54
Цитата Славян @
Joe, а можно поподробнее, а то я не догоняю?!

Не не, я ошибся - у тебя идея правильная.
Только чего-то онлайн компилятору она не нравится - https://ideone.com/IYLje4

Автор: ЫукпШ 14.06.19, 08:56
Цитата JoeUser @
Только чего-то онлайн компилятору она не нравится -

И понятно, что именно.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    // вот так будет работать:
      char str[] = "-!-!!---!\0";

Автор: JoeUser 14.06.19, 09:13
ЫукпШ, да да ... сорь, не отписал. Qraizer мне именно об этом уже кагбэ намекнул.
Скрытый текст
Посыпаю голову пеплом. Константность константы должна быть константной!!! :lol:

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