繁体   English   中英

有人可以帮助解释此C算法在做什么吗?

Can someone help explain what this C algorithm is doing?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我一直在看这个C代码,但不确定它到底在做什么。 我不理解使用find语句的多个if语句。

int f(char *s) {
  char *p = s;
  int c = 1;
  while (*p == ’ ’)
    ++p;
  while (*p != ’\0’) {
    if ( *p < ’0’ || *p > ’9’ ) {
      printf("Error!\n"); return 0;
    }
  ++p; }
  for (--p; p >= s; --p) {
    if (*p == ’ ’) *p = ’0’;
    *p += c;
    if (*p > ’9’) {
      *p = ’0’; c = 1;
    } else
      c = 0;
    if (c == 0) break;
  }
  if (c != 0) {
    printf("Error!\n");
    return 0;
}
return 1; }
1 个回复
// return an integer given a character pointer, a string.
int f(char *s) {
  // Set current position to start of string
  char *p = s;
  // Initialise carry flag to '1'.
  int c = 1;
  // Move position past leading spaces
  while (*p == ’ ’)
    ++p;
  // Check remaining characters are in the set {'0','1',..,'9'}
  while (*p != ’\0’) {
    // If they are not, return with an error
    if ( *p < ’0’ || *p > ’9’ ) {
      printf("Error!\n"); return 0;
    }
++p; }
  // Now counting back from the end of the string
  for (--p; p >= s; --p) {
    // Turn a space into a '0'; 
    if (*p == ’ ’) *p = ’0’;
    // Increment the digit by the value of the carry; one or zero
    *p += c;
    // This might cause a further carry, capture that
    if (*p > ’9’) {
      *p = ’0’; c = 1;
    } else
      c = 0;
// if no carry, break, else keep on with the carry
    if (c == 0) break;
}
  // If still carrying passed the end of the space, call an error.
  if (c != 0) {
    printf("Error!\n");
    return 0;
}
return 1; }

本质上:如果输入是数字字符串,则添加一个;否则,请加1。 可能需要一个前导空格,如果输入全为9,则将使用它。

2 有人可以解释此REGEX在做什么吗? [重复]

这个问题已经在这里有了答案: 参考-此正则表达式是什么意思? 1个答案 因此,我有一个根据字符串参数是否为有效URL返回true / false的函数。 问题是我不太了解REGEX。 我知道此函数将为字符串“ test”返回true,为“ www.test.c ...

3 有人可以解释这条线在做什么

有人可以帮助我了解此功能在线发生了什么 容器被分配了typeof容器的结果,但是如果container等于一个函数,则调用该函数。 我有点头晕。 此代码是从React组件Modal的材料ui文档中提取的 ...

4 有人可以解释这段代码在做什么吗?

我试图通过查找当前代码来学习javascript,我想知道是否有人可以解释此代码段中发生的事情(此代码段只是函数的一部分,因此没有右括号): 我最困惑的部分是childNodes []和if(i)语句? ...

9 有人可以向我解释这个php代码在做什么吗?

我正在使用一个名为Liberty的Joomla模板,并且开始在页面上显示这些奇怪的链接。 如果我清除了网站缓存,则链接消失,仅在以后显示。 我终于找到了问题所在。 index.php代码称为包含页面,该页面称为template.php,而该页面又称为文件mods.php。 以下是这些文件 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM