gpt4 book ai didi

c++ - 拆分 LPSTR 并将值相加为 long

转载 作者:行者123 更新时间:2023-11-30 03:05:10 25 4
gpt4 key购买 nike

我正在尝试采用 C++ 中的 LPSTR,例如“12,30,57”并将其拆分,然后将从拆分操作返回的所有数字(它们都是非十进制的)相加到结果中长值。

我可以向你保证,这不是家庭作业。这是我正在编写的一个扩展,它要求我用 C++ 编写过程性的东西,因为主要的开发环境不支持函数。我是一名 Java/C# 开发人员,所以这一切都是个谜。注意:这是纯 C++ 而不是 C++.NET。我最终也将不得不在 Objective-C 中编写一个版本(哦,快乐),尽可能多地与 ANSI-C++ 兼容,我会过得更好。

回答:

我只是想感谢大家的帮助,并与您分享我的代码,效果非常好。这对我来说有点牵强,因为我不是真正的 C++ 专家。不过谢谢大家。

// Get
long theparam = GetSomeLPSTR(); // e.g. pointer to "1,2,3,4,5,6"

// Set
char *temp = (LPSTR)theparam;
char *temp2 = (LPSTR)malloc(strlen(temp)+1);
strcpy(temp2,temp);

long result = 0;
char * pch;

// Split
pch = strtok(temp2,",");

// Iterate
while (pch != NULL)
{
// Add to result
result += atoi(pch);

// Do it again
pch = strtok (NULL,",");
}

// Return
return result;

最佳答案

一个简单的方法(有很多,有些或多或少有效):

LPSTR urcstring = "12,30,57";
std::stringstream ss(urcstring);
long n,m,p;
char comma;

ss >> n;
ss >> comma;
ss >> m;
ss >> comma;
ss >> p;

std::cout << "sum: " << ( n + m +p ) << std::endl;

关于c++ - 拆分 LPSTR 并将值相加为 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com