- 直观的方法是先组织好字符串再转化为数字相加,但是会损失时间.另外,
string
对于\0
的处理是并不会影响stoll()
的使用,但是\0
并不作为结束字符使用,所以如果打印出来是无法得出和c风格字符串同样的效果的
- 字符串转数值直接用
pa=pa*10+da
即可,这种方法对于string
和C-style string
通用
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
long long int sum;
int len_pa = 0, len_pb = 0, da, db;
char a[12], b[12];
scanf("%s%d%s%d", &a, &da, &b, &db);
for (int i = 0; i < strlen(a); i++) {
if (a[i] - '0' == da)
a[len_pa++] = a[i];
}
a[len_pa] = '\0';
for (int i = 0; i < strlen(b); i++) {
if (b[i] - '0' == db)
b[len_pb++] = b[i];
}
b[len_pb] = '\0';
sum = atoll(a) + atoll(b);
printf("%lld", sum);
return 0;
}
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
long long int pa = 0, pb = 0, sum;
int da, db;
char a[12], b[12];
scanf("%s%d%s%d", &a, &da, &b, &db);
for (int i = 0; i < strlen(a); i++) {
if (a[i] - '0' == da)
pa = pa * 10 + da;
}
for (int i = 0; i < strlen(b); i++) {
if (b[i] - '0' == db)
pb = pb * 10 + db;
}
sum = pa + pb;
printf("%lld", sum);
return 0;
}
网友评论