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

C 在程序中处理这两行代码,c,string,pangram,C,String,Pangram,这是检查字符并将值保存在变量total中的条件。变量total将包含数组中唯一字符的数量str 发生这种情况的原因是,只有在尚未将字符标记为已访问时,才增加计数(total+=!used[str[i]-'a'])。如果将其递增,则在下一行(used[str[i]-'a']=1)中将其标记为这样,这样就不会再次计数 符号str[i]-“a”用于将字符的ascii值从0移到25(而不是从97移到122)这样您就可以在数组中留出一些空间。您的问题是什么?我没有得到函数,或者我可以在这些行后面说算术,比

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

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

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


符号
str[i]-“a”
用于将字符的ascii值从0移到25(而不是从97移到122)这样您就可以在数组中留出一些空间。

您的问题是什么?我没有得到函数,或者我可以在这些行后面说算术,比如ascii值等等。这是一个pangram。请参阅:欢迎访问stackoverflow.com。请花些时间来阅读,采取,阅读以及。那么请学习如何创建一个,和。好的,但是值是如何计算的?为什么?怎样如果没有解释,这并不是一个有用的答案。另外,你还做出了一些(相当令人印象深刻,恕我直言)假设。它们也应该被解释或者至少被提及。这不是一个有用的答案+1对于一个超级简洁的答案。我认为@Yunnosch请求的假设是“
已使用
初始化为
={0}
”,以及“输入是文本约束的,限制为从小写字母
a
到小写字母
z
”的值。我认为尝试从尝试的解决方案中逆向工程问题陈述的约束是很好的。
total+=!used[str[i]-'a'];
used[str[i]-'a']=1;