ورود

View Full Version : استفاده از tokenizer



amirhossein1376
جمعه 20 فروردین 1395, 06:25 صبح
سلام دوستان تو ++c قراره یه ورودی توی سطر بگیرم و بعد با tokenizer اعدادشو جدا کنم و جمع اعدادو cout کنم
این سوالو باید تو سایت codeforces بزنم و این کدی که من زدم تو تست سومش wrong میخوره درواقعا یه جاییش اشتباهه
ممنون میشم راهنماییم کنین

#include <iostream>#include <string>
#include <cmath>
#include <stdio.h>
#include <string.h>
using namespace std;


int stringtonum(string a) {
int c = a.length() - 1;
int k = 0;
int j = 0;
while (c > -1) {
int i = a.at(c) - '0';
j += pow(10, k) * i;
k++;
c--;
}


return j;
}


int main() {
string a;
string s = "" ;
getline(cin, a);
int length = a.length();
for (int i = 0; i < length; i++) {
char st = a.at(i);
if (st < 48 || st > 57) {
if (s.find(st) == string::npos)
s += st;
}
}


char *str = new char[a.length()];
for (int i = 0; i < a.length(); i++) {
str[i] = a.at(i);
}
char *tok = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
tok[i] = s.at(i);
}
int sum = 0;
char * pch;
pch = strtok(str, tok);
while (pch != NULL) {
cout << pch << endl;
sum += stringtonum(pch);
pch = strtok(NULL, tok);
}
cout << sum;
return 0;
}

zero_ox
شنبه 21 فروردین 1395, 14:28 عصر
چرا برا تبدیل استرینگ از تابع ()atoi استفاده نمی کنی .