• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Превобразование из Char в String

  • Автор темы xparen
  • Дата начала
X

xparen

Народ помогите преобразовать задачу (строки из char в String).. Пробывал сделать вот так:
C++:
String s;
char st[11];
.........

s=st;
.............
//-------в местах цикла длину строки заменял на s.Length()----------
for(i=0; i<=s.Length(); i++)
.........

А вот и сама задача, которую нужно преобразовать:
C++:
int j,k,d,s1,s2,mas1[10],mas2[10],n1,n2,j1,k1;
char st[11];
puts("Vvedite stroky: ");
gets(st);
d=strlen(st);
j=n1=s1=0;
for(int i=0;i<=d;i++){
if(st[i]=='1')
s1++;
else{
if(s1!=0){
mas1[j]=s1;
j++;
n1++;
}
s1=0;
}
}
k=n2=s2=0;
for(int i=0;i<=d;i++){
if(st[i]=='0')
s2++;
else{
if(s2!=0){
mas2[k]=s2;
k++;
n2++;
}
s2=0;
}
}
j1=mas1[0];
for(j=0;j<n1;j++){
if(mas1[j]<j1)
j1=mas1[j];
}
k1=mas2[0];
for(k=0;k<n2;k++){
if(mas2[k]<=k1)
k1=mas2[k];
}
puts("min gruppa edinic: ");
for(int s=1;s<=j1;s++)
printf("1");
puts("\nmin gruppa nulej: ");
for(int s=1;s<=k1;s++)
printf("0");
getch();
return 0;
}
 
I

ierofant

Miller85 ,
std::string с маленькой буквы пишется и не имеет метода Length, умник.
 
I

ierofant

Я не умник biggrin.gif Я только учусь... Хотел помочь!!!
Да я не против шучу просто.

xparen ,
если ты пишешь свой собственный класс String то присваивание там можно определить примерно так:
C++:
#include <iostream>
#include <cstring>

class String
{
public:
String () : text (NULL){}
String (const char *_text) : text (new char [strlen (_text) + 1]) {strcpy (text, _text);}
~String () {if (text) delete[] text;}

public:
void operator= (const char *_text)
{
if (text) delete[] text;
text = new char [strlen (_text) + 1];
strcpy (text, _text);
}
friend std::ostream& operator<<(std::ostream &_out, const String &_str);

private:
char *text;
};

std::ostream& operator<< (std::ostream &_out, const String &_str)
{
if (_str.text) _out << _str.text;
}

int main ()
{
char st [] = "Hello";
String str = st;

std::cout << str << std::endl;

return 0;
}
В стандартном std::string оператор присваивания тоже перегружен.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!