Задание:
Разработать функцию, которая выполняет следующую обработку символьной строки: выровнять строку по левому краю до заданной длины. Запрещается пользоваться стандартными функциями библиотек С.
Или я сегодня сильно туплю, или причина в кривых руках, но не выходит ничего...
Ты вот о таком:
#include <iostream.h>
int main()
{
char str1[80];
char str2[80];
int arr1[80];
int arr2[80];
int i = 0, otstup = 0;
cout << "VVedite stroku: " << "\n";
cin.getline(str1, 80);
for(i = 0; i < 80; i++) {
arr1[i] = str1[i];
}
cout << "\n";
cout << "Vvedite otstup: ";
cin >> otstup;
for(i = 0; i < otstup; i++) {
arr2[i] = ' ';
}
for(; i < 80; i++) {
arr2[i] = arr1[i - otstup];
}
for(i = 0; i < 80; i++) {
str2[i]=arr2[i];
}
cout << ("\n");
cout << ("\n");
cout << str2;
return 0;
}
Так... Концепция изменилась... Согласен, затупил. Все гораздо проще, и без всяких наворотов ))
int main()
{
char str1[80];
int i;
int otstup;
i=0;
otstup=0;
cout << "VVedite stroku: ";
cin >> str1;
cout <<"\n";
cout << "Vvedite otstup: " << "\n";
cin >> otstup;
for (i=0; i<otstup; i++)
{
cout << " ";
}
cout << str1;
return 0;
}
Ты обратил внимание, КАК я вводил строку? Зачем вообще спрашивать, если на ответы не обращаешь внимания, и второй раз - на те же грабли?
То, что она у тебя выводится до первого пробела, происходит потому, что оператор ">>" вводит строку до первого пробела, а чтобы прочесть всю строку надо использовать getline
Ну хорошо, это понял. А что с проверкой отступов? Есть функция strlen, но стандартными функциями мне нельзя пользоваться. Как сделать, чтобы строка не разрывалась