Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > ПОМОЩЬ СТУДЕНТАМ > Прошу помощи со строками |
Автор: Muereta 10.06.19, 13:46 |
До этого пыталась сделать, но однако не получается Вот какой код был: 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 |
Не не, я ошибся - у тебя идея правильная. Только чего-то онлайн компилятору она не нравится - https://ideone.com/IYLje4 |
Автор: ЫукпШ 14.06.19, 08:56 |
И понятно, что именно. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> // вот так будет работать: char str[] = "-!-!!---!\0"; |
Автор: JoeUser 14.06.19, 09:13 |
ЫукпШ, да да ... сорь, не отписал. Qraizer мне именно об этом уже кагбэ намекнул. Скрытый текст Посыпаю голову пеплом. Константность константы должна быть константной!!! |