接收一串"chars",并尝试使用指针计算其中有多少个相同类型

Receiving a string of "chars" and try to count how many of them are there of the same kind by using pointers

本文关键字:计算 指针 同类型 多少 一串 chars      更新时间:2023-10-16

我有一个接收字符串"chars"的函数。我试图遍历那个字符串,并使用指针来查看第二个元素是否与第一个元素相同。假设我有aaabccddd,我想写一个数组,我有3a,2 bs,2cs和3ds。我真的很难通过使用指针来判断第二个字符串是否与第一个字符串相同。我创建了这个临时指针,我做了临时++。这基本上只是显示了第二个学期之后的一切,等等…我怎么能单独看待第二个任期,并用指针将其与第一个任期进行比较呢。

void RLE<T>::Compress(const T* input, int inSize)
{
   delete m_Data;
    m_Size = 0;
    T * m_Data;
    m_Data = new T[inSize*2];

    int runSize = MaxRunSize();
    const T * temp;
    temp = input;
    temp++;

这里的这一部分总是给我错误,它说我的指针不好。我知道这基本上不起作用,因为我的输入指针比我创建的临时指针长。并且我的阵列从未初始化

    if  (temp == input)
    {
        std::cout<<"here"<<std::endl;
        int number = 1;
        number++;
        m_Data[0] = number;
        m_Size++;
        std::cout<<temp;
        m_Data[m_Size] = *temp;

    }
}

任何帮助都将不胜感激

您的错误一开始就对吗?

delete m_Data;
m_Size = 0;
T * m_Data;

这是不起作用的,因为m_Data在那时是未定义的,除非根据命名,它也是一个成员,在这种情况下,你不应该重新定义它

你不应该做吗

if(temp[i] == temp[i+1]) //or something like that

而不是

if  (temp == input)