C - 在程序中处理这两行代码


total+=!used[str[i]-'a'];
used[str[i]-'a']=1;

这是检查字符并将值保存在变量总计中的条件。

total变量将包含数组中唯一字符的数量str

发生这种情况是因为仅当您尚未将字符标记为已访问时,您才会增加计数(total+=!used[str[i]-'a'](。如果将其递增,则在下一行(used[str[i]-'a']=1(中将其标记为这样,这样您就不会再次计算它。

表示法str[i]-'a'用于将字符的 ascii 值从0移动到25(而不是97122(,以便您可以在数组中留出一些空间。

最新更新