涉及字符数组的C语句的含义
我正在为一个项目做一个算法,我遇到了一些我认为可能有用的代码。然而,当我试图阅读代码时,我在理解代码中的语句时遇到了一些困难。这是代码涉及字符数组的C语句的含义,c,arrays,char,C,Arrays,Char,我正在为一个项目做一个算法,我遇到了一些我认为可能有用的代码。然而,当我试图阅读代码时,我在理解代码中的语句时遇到了一些困难。这是代码 int firstWord[MAX_WORD_SIZE] = {0}, c = 0; while (word1[c] != '\0') //word1 is char[] sent as a parameter { firstWord[word1[c]-'a']++; c++; } 我理解(希望正确)第一行是设置一个最大大小的整数数组,并将元素初始化
int firstWord[MAX_WORD_SIZE] = {0}, c = 0;
while (word1[c] != '\0') //word1 is char[] sent as a parameter
{
firstWord[word1[c]-'a']++;
c++;
}
我理解(希望正确)第一行是设置一个最大大小的整数数组,并将元素初始化为零,同时使初始计数器值“c”为零
我知道while循环在word1[]
数组的所有字符中循环,直到到达最后一个字符'\0'
我在firstWord[word1[c]-'a']++一行中感到困惑代码>
word1[c]
应该给出一个字符,那么-'a'
做什么呢?这是否将字符转换为整数,从而允许您访问firstWord[]
数组的元素,并使用++
递增?如果是,哪个元素或整数由word1[c]-“a”
给出这是一个计算单词中字母a
到z
数量的程序。这里的关键点是,'a'-'a'
的值为0
,'b'-'a'
的值为1
,以此类推
例如,如果word1[c]
是字母'd'
,那么'd'-'a'
是3
,因此它将增加第一个单词[3]
。当一个单词被一个字符一个字符地迭代时,firstWord[3]
包含单词中字母'd'
的数量。这是一个程序,它计算单词中字母a
到z
的数量。这里的关键点是,'a'-'a'
的值为0
,'b'-'a'
的值为1
,以此类推
例如,如果word1[c]
是字母'd'
,那么'd'-'a'
是3
,因此它将增加第一个单词[3]
。当一个字符一个字符地迭代单词时,firstWord[3]
包含单词中的字母数'd'
。似乎此代码正在进行字母计数
1那么-‘a’的作用是什么
如果word1[c]是“a”,那么word1[c]-“a”是0
二,。这是否将字符转换为整数,从而允许您访问firstWord[]数组的元素并使用++递增
是的,是整数促销
3.如果是,由word1[c]-“a”给出哪个元素或整数
如果word1[c]是'a',那么word1[c]-'a'是0这段代码似乎在进行字母计数
1那么-‘a’的作用是什么
如果word1[c]是“a”,那么word1[c]-“a”是0
二,。这是否将字符转换为整数,从而允许您访问firstWord[]数组的元素并使用++递增
是的,是整数促销
3.如果是,由word1[c]-“a”给出哪个元素或整数
如果word1[c]是“a”,则word1[c]-“a”是0word1[c]-“a”是指word1第cth位的字符与“a”的整数值之间的差值。基本上,它计算单词中字母出现的次数
所以,如果word1[c]是'b',那么word1[c]-'a'的值将是('b'-'a')=1。因此单词中出现“b”的次数将增加1。word1[c]-“a”是指word1第cth位的字符与“a”的整数值之间的差值。基本上,它计算单词中字母出现的次数
所以,如果word1[c]是'b',那么word1[c]-'a'的值将是('b'-'a')=1。因此,单词中出现“b”的次数将增加1。可能会帮助您更好地理解该表达式。请查看表中字母旁边标有dec
的列。然后想想正在做的数学运算(在这个例子中是减法运算)。谢谢,对不起,我在问你之后就把我的评论删掉了。谢谢你的帮助!可能有助于您更好地理解该表达式。请查看表中字母旁边标有dec
的列。然后想想正在做的数学运算(在这个例子中是减法运算)。谢谢,对不起,我在问你之后就把我的评论删掉了。谢谢你的帮助!您好,有关固定格式标记,请参阅我以前对此答案的编辑。您好,有关固定格式标记,请参阅我以前对此答案的编辑。感谢您的明确回答,作为后续问题,最好是让我的数组第一个字[]将初始大小设置为26,而不是我的最大单词大小(碰巧是30)?@JoshEngelsma除非ASCII中'z'
后面的一些字符也被计算在内,否则我认为您是对的。感谢您的明确回答,作为后续问题,最好是让我的数组第一个单词[]将初始大小设置为26,而不是我的最大单词大小(碰巧是30?@JoshEngelsma),除非ASCII中'z'
后面的一些字符也被计算在内,否则我认为你是对的。