1

私はCが初めてで、この関数を自分で書く方法を考えています。コマンドラインからパラメーターを取得するため、argv 配列に格納され、数値であるかどうかを判断したいと考えています。これを行う最も簡単な方法は何ですか?

ありがとうございました

#include <stdio.h>

int isNumber(int *param)
{   
    if (*param > 0 && *param < 128)
        return 1;
    return 0;
} 

int main(int argc, char *argv[])
{
    if (argc == 2)
        isNumber(argv[1]);
    else printf("Not enought parameters.");

    return 0;
}
4

4 に答える 4

0

それが数字なのか数字なのか、 intargv[1]型ではないのかどうかを確認したいのかわからないので、次のようにする必要があります。char *

bool isDigit(char *param)
{   
    return (*param >= `0` && *param <= `9`)
}

bool isNumber(char *param)
{   
    while (param)
    {
        if (!isDigit(param))
            return false;
       param++;
    }
    return true;
} 
于 2013-10-06T08:24:09.617 に答える
0

次のようにしてみてはどうでしょうか。

#include <ctype.h>

if(isdigit(input))
{
  return true;
}
else
{
  return false;
}

またはH2CO3がコメントしたようにもっと簡単:

 #define isnumber isdigit

また

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main () {

  //some code
  theChar = atoi(string[i]);
  if (isdigit(theChar)) {
    return true;
  }
  return 0;
}
于 2013-10-06T08:03:17.183 に答える