Другие языки программирования и технологии

Помогите с кодом C#. Нужно удалять из строк начальные пробелы с помощью while, if, for, без специальных методов

Переписывает только один символ после каждого пробела в строке, а нужно удалять только все первые пробелы в каждой строке
while (st != null)
{
string str = "";
for (int i = 1; i < st.Length; i++)
{
if (st[i - 1] == ' ')
{ str = str + st[i] + st; }
}
Один из вариантов:

Обрабатывать последовательность символов.

хранить признак "перевод строки уже был. а слова еще нет" изначально выставив его в 1.
читать_посимвольно_вход_до_конца_текста.
{
пока этот признак равен 1 пропускать пробелы, а как встретится непробельное переводить признак в 0. и сохранять то, что на входе на выход.
как только встретится символ перевода строки опять поставить признак в 1.
}

Тогда никаких стандарных функций работ со строками - просто работа с потоком символов.

to Jurijus Zaksas: Должны же учащиеся хоть чуток понимать как все внутри, и из каких песчинок состоят домостроительные панели )) Тут же явно задача на сопоставление теста набору символов, а не на знание стринговых библитек
Сергей Усаченко
Сергей Усаченко
27 060
Лучший ответ
А цель? Эти самые методы работают гораздо быстрее и эффективнее.
Сергей Дементьев Нужно не методом, так по заданию
while (st != null){string str = "";for (int i = 1; i < st.Length; i++){if (st[i - 1] == ' '){
if(i==0){str = st}

else {str = str + st[i-1] + st; }

}

}

вообще не уверен что тут все работает. . но раз ваш пример работал то это тоже должно
можно и так

string str="это моя строка"

string str_out=""

i=0;

int tst=0;

while(str[i]){

if(str[i] != ' ' || tst == 0){str_out = str_out + str[i]} /тут || это ИЛИ OR непомню как там логический операнд или

else{tst = 1}

}
Лёшка Перов
Лёшка Перов
5 846
Сергей Дементьев совсем не правильно работает
ты каждый проход сдвигаешь строку, не проще посчитать пробелы и скопировать с нужной позиции? while (st[i]==' ' ){i++};....пырлипырлипым.. . НЕ ЗАПИХИВАЙТЕ В ЦИКЛЫ СТРОКИ И ДАННЫЕ!! ! НИКОГДА, ЯПОНАМАТЬ!!!
Сергей Дементьев Как это я каждый проход сдвигаю строку, скопировать пробелы с нужной позиции, ничего не поняла. Нам преподаватель именно в цикле задает делать
К сожалению, си не учил, но попробую описать алгоритм на яве. Только учу, возможны косяки
for (int i=1; i<st.length, i++)
{
if (st[i]==' ')

for (int k= (int) i; k<st.length-1; k++)

{st[i]=(char) (st[i-1]);}

}