设有如下代码,请对其进行优化

void lower(char *s)
{
  size_t i;
  for (i = 0; i < strlen(s); i++)
    if (s[i] >= 'A' && s[i] <= 'Z')
      s[i] -= ('A' - 'a');
}


void lower(char *s)
{
  size_t i;
  size_t len = strlen(s);
  for (i = 0; i < len; i++)
    if (s[i] >= 'A' && s[i] <= 'Z')
      s[i] -= ('A' - 'a');
}

strlen每次循环都在执行,把他给个变量只算一次就好了,虽然代码多了但是速度会变快

有用请采纳

void lower(char* s){
  size_t i;
  int subValue = 'A' - 'a';       // 减少减法次数 
  for (i = 0; i < strlen(s); i++)
    if (s[i] >= 'A' && s[i] <= 'Z')
      s[i] -= subValue;
}

问崔孝成