c - 这两行代码在程序中的工作

标签 c string pangram

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

这是检查字符并将值保存到变量total 中的条件。

最佳答案

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

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

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

关于c - 这两行代码在程序中的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52115363/

相关文章:

c - 将 16 位值转换为 8 位值的有效方法

c - 警告: implicit declaration of function 'swprintf_s' ?是什么原因

C# 最长常用词示例

c - 是否存在将文本文件转换为字符串文字作为构建步骤的任何内容?

Python:处理字符串时出现问题

java - 判断字符串是否是 Pangram 的代码?

c - 如何将 Intel Assembly C 转换为 AT&T C++

c - 多行中的 C' 分号背后的想法是什么?

c++ - C++中的Pangram函数