您好,对字符串使用下标运算符,返回的是字符。字符可以类型隐式转换到整数类型。
by only_a_speaker @ 2023-10-26 17:05:12
@[RingTouSou](/user/1034242) C++ 是弱语言,基本所有的类型都可以转换。
我用下面的代码试了一下:
```cpp
#include <bits/stdc++.h>
using namespace std;
int n;
string s;
signed main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
while(cin>>n)
{
s = n;
cout<<s<<'\n';
}
return 0;
}
```
发现把 `int` 转为 `string` 其实就是把 `int` 的二进制位的后 $8$ 位取出来转为字符,因为输入 `48` 和 `304` 结果应该是一样的。
至于为啥能 A,我也不知道。
by pyy1 @ 2023-10-26 17:07:03
@[only_a_speaker](/user/1154375) 那请问为什么是高精度的时候,a[la-i]=A[i]-'0';就要减掉这个‘0’;什么时候选择使用哪个呢?
by RingTouSou @ 2023-10-26 18:05:56
@[pyy1](/user/581316) 那请问为什么是高精度的时候,a[la-i]=A[i]-'0';就要减掉这个‘0’;什么时候选择使用哪个呢?
by RingTouSou @ 2023-10-26 18:06:53
@[RingTouSou](/user/1034242)
您好,在高精度题目中,需要的不是 `ASCII` 码的值,而是数字的数值。所以需要将字符进行一个线性偏移,得到 `ASCII` 码对应的数字字符的数值。
by only_a_speaker @ 2023-10-26 18:11:41
@[only_a_speaker](/user/1154375) @[only_a_speaker](/user/1154375) 您好,您的意思是这里需要ASCII码的值吗?我没有太理解您的意思。我对这方面了解不是很具体。是重载了运算符的原因吗
by RingTouSou @ 2023-10-26 18:18:09
@[RingTouSou](/user/1034242)
您好,在本题中,这里其实不在乎是 `ASCII` 码的值,还是将 `ASCII` 码偏移后得到的数值。这里在乎的是,字符之间的相等的关系。因为状态只取决于 `string` 的相等,`string` 的相等取决于每个字符的相等,所以只要是按同一种规则来进行解读,就没有区别。
例如,题目中为 `1,2,3,4,5,6,7,8` 。即使变成 `a,b,c,d,e,f,g,h` 也是同一道题。所以不管加不加、见不见、偏移不偏移,都是可行的。
by only_a_speaker @ 2023-10-26 18:37:01
@[only_a_speaker](/user/1154375) 我大概理解了您的想法,还是有点绕。关注已点,需要5元的话可以私信,但是有两个人给您3元可以嘛
by RingTouSou @ 2023-10-26 19:39:34
@[pyy1](/user/581316) 我大概理解了您的想法,还是有点绕。关注已点,需要5元的话可以私信,但是有两个人给您2元可以嘛
by RingTouSou @ 2023-10-26 19:40:02
@[only_a_speaker](/user/1154375) 不需要的话无比感谢您
by RingTouSou @ 2023-10-26 21:36:56