同时将大写字母转换为小写字母

时间:2017-11-30 17:31:53

标签: c pointers counter

我有一个代码,我应该通过一个名单列表并计算一个字母的使用次数。到目前为止它适用于小写但我如何在图片中实现大写。 我非常感谢你的帮助。

/*                                                                              
 * Search through each character in s,                                          
 * which is array containing n strings,                                         
 * and update the global count array                                            
 * with the correct character counts.                                           
 * Note: check the examples to see                                              
 * if the counts should be case                                                 
 * sensitive or case insensitive.                                               
 */
void letterCount(char * s[], int n){
  //Implement this function                                                     
  int c = 0,x,i;
  char p = 'a', j = 'z', A = 'A', Z = 'Z';
  while (c<n) {
    for(i=0;s[c][i]!='\0';i++){
      if (s[c][i] >= p && s[c][i] <= j ){
        x = s[c][i] - 'a';
        count[x]++;
      }
      c++;
    }
  }
}

2 个答案:

答案 0 :(得分:1)

您可以设置字母大小写的标准,即仅使用小写字母或大写字母。将字符数组的内容转换为小写(通过将32加到每个字符的值(ASCII VALUE))然后调用letterCount函数。或者使用strlwr将字符串转换为小写。

答案 1 :(得分:0)

你可以像这样使用ascii值: a1的count1 []和A-Z的count2 []

[20000x2][2x20000] Multiplication Duration: 80867 ms
[200x200][200x200] Row Major Duration:      71845 ms
[200x200][200x200] Distributed Duration:    29929 ms