Переписывает только один символ после каждого пробела в строке, а нужно удалять только все первые пробелы в каждой строке
while (st != null)
{
string str = "";
for (int i = 1; i < st.Length; i++)
{
if (st[i - 1] == ' ')
{ str = str + st[i] + st; }
}
Другие языки программирования и технологии
Помогите с кодом C#. Нужно удалять из строк начальные пробелы с помощью while, if, for, без специальных методов
Один из вариантов:
Обрабатывать последовательность символов.
хранить признак "перевод строки уже был. а слова еще нет" изначально выставив его в 1.
читать_посимвольно_вход_до_конца_текста.
{
пока этот признак равен 1 пропускать пробелы, а как встретится непробельное переводить признак в 0. и сохранять то, что на входе на выход.
как только встретится символ перевода строки опять поставить признак в 1.
}
Тогда никаких стандарных функций работ со строками - просто работа с потоком символов.
to Jurijus Zaksas: Должны же учащиеся хоть чуток понимать как все внутри, и из каких песчинок состоят домостроительные панели )) Тут же явно задача на сопоставление теста набору символов, а не на знание стринговых библитек
Обрабатывать последовательность символов.
хранить признак "перевод строки уже был. а слова еще нет" изначально выставив его в 1.
читать_посимвольно_вход_до_конца_текста.
{
пока этот признак равен 1 пропускать пробелы, а как встретится непробельное переводить признак в 0. и сохранять то, что на входе на выход.
как только встретится символ перевода строки опять поставить признак в 1.
}
Тогда никаких стандарных функций работ со строками - просто работа с потоком символов.
to Jurijus Zaksas: Должны же учащиеся хоть чуток понимать как все внутри, и из каких песчинок состоят домостроительные панели )) Тут же явно задача на сопоставление теста набору символов, а не на знание стринговых библитек
А цель? Эти самые методы работают гораздо быстрее и эффективнее.
Сергей Дементьев
Нужно не методом, так по заданию
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}
}
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}
}
Сергей Дементьев
совсем не правильно работает
ты каждый проход сдвигаешь строку, не проще посчитать пробелы и скопировать с нужной позиции? 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]);}
}
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]);}
}
Похожие вопросы
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Помогите, лёгкий код C++
- помогите закончить код C++
- помогите с кодом C++ выдает не правильно
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Помогите откорректировать код в C++
- Помогите исправить код так, чтобы работал! :) (C#)
- Помогите с кодом на c++