我正在尝试编写一个函数,该函数能够确定字符串是否包含实数或整数值。

这是我能想到的最简单的解决方案:

int containsStringAnInt(char* strg){
  for (int i =0; i < strlen(strg); i++) {if (strg[i]=='.') return 0;}
  return 1;
}


但是,当字符串很长时,此解决方案的速度确实很慢...有任何优化建议吗?
任何帮助将不胜感激!

最佳答案

您正在使用strlen,这意味着您不必担心unicode。在这种情况下,为什么要使用strlen或strchr,只需检查'\ 0'(空字符)

int containsStringAnInt(char* strg){

  for (int i =0;strg[i]!='\0'; i++) {
      if (strg[i]=='.') return 0;}
  return 1; }


与在每次循环迭代中通过字符串进行解析相比,仅通过字符串进行解析。

10-06 05:05