-3

我想将以下代码放在一个函数中:(代码不完整,但我认为您应该清楚)

char *parsedData[SEPERATOR];

for(int i=0; i<SEPERATOR; i++)
{
    parsedData[i]=tmp;
}

该函数应如下所示:

int main()
{
    char *parsedData[SEPERATOR];
    Parser(WTString, parsedData);
}
int Parser(char *WTString, *parsedData[SEPERATOR])
{
    for(int i=0; i<SEPERATOR; i++)
    {
        parsedData[i]=tmp;
    }
}

该代码在一个函数中运行良好。通过将代码分成两个函数,我没有得到可用的数据。

如果有人可以帮助我,我将不胜感激。我不想使用更多的库。

4

3 回答 3

1

char *parsedData[SEPERATOR]; 为什么?

为什么需要char在 C++ 中使用原始指针数组?

你为什么不直接使用 astd::vector<std::string> 并为自己省去一大堆痛苦和绝望。

于 2012-09-21T11:10:50.273 回答
1

这样做的 C++ 方式如下所示:

#include <string>
#include <vector>

std::vector<std::string> Parser(const char *WTString)
{
    std::vector<std::string> result;
    for(std::size_t i = 0; i != SEPERATOR; ++i)
    {
        result.push_back(tmp); // whatever tmp is 
    }
    return result;
}

我不想使用更多的库。

别担心,我的代码示例只需要标准库。

于 2012-09-21T11:17:54.233 回答
1

如果您不想使用 stl,我建议使用此功能:

int PointToDefault(char* target, char** parsedData, unsigned int count)
{
  for (unsigned int i=0; i<count; i++)
    {
      parsedData[i] = target;
    }
}

这个电话:

#define SEPERATOR 15
int main()
{
  char tmp[] = "default string";

  char *parsedData[SEPERATOR];
  PointToDefault(tmp, parsedData, SEPERATOR);
}
于 2012-09-21T11:19:49.140 回答