Я пытаюсь взять LPSTR в C ++, такой как «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;