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

Тема в разделе "C/C++/C#", создана пользователем xparen, 23 дек 2010.

  1. xparen

    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;
    }
     
  2. ierofant

    ierofant Гость

    Что это за тип String? Нужно дать его описание.
     
  3. ierofant

    ierofant Гость

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

    Miller85 Гость

    Я не умник :) Я только учусь... Хотел помочь!!!
     
  5. ierofant

    ierofant Гость

    Да я не против шучу просто.

    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 оператор присваивания тоже перегружен.
     
Загрузка...

Поделиться этой страницей