独立的一串太晦涩难懂了 我们来看一个完整的
int main()
{
char s[1001];
gets_s(s);
int num[10] = { 0 };
for (int i = 0; s[i] != '\0'; i++)
{
num[s[i] - '0']++;
}
for (int i = 0; i < 10; i++)
{
if (num[i] != 0) {
printf("%d:%d\n", i, num[i]);
}
}
return 0;
}
说白了 我们想让num[1],num[2],num[3]等等的位置的数字加1
但是s[i] 是字符,也就是说如果s[2]=2,他其实是等于‘2’,‘2’=50
所以我们发现先要由字符‘2’变为2要减去48,而48对应的字符便是‘0’