首页 > 解决方案 > 字符串转整数的问题

问题描述

(我对编码和 C 都很陌生。)

我想检查“string argv”中的第一个字符串是否是一个或多个小数,以及是否将其转换为整数。我想我可能需要遍历字符串,但到目前为止这段代码不起作用。它说分段错误。

这是我的代码:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <stdlib.h>

int main (int argc, string argv [])
{

    //check command line
    if (argc == 2)
    {
        printf("success");
    }
    else
    {
        printf("Usage: ./caesar key.");
    }

    //validate number
    if (isdigit (argv[1]))
    {
        int x = atoi(argv[1]);
        printf("I is now %i\n", x);
        return 0;
    }

    if (isalpha(argv[1]))
     {
        printf("Usage: ./caesar key\n");
        return 1;
    }
}

标签: arrayscstring

解决方案


main函数接受 (int argc, char *argv[]) 参数。argv 是指向指针的指针,而 argv[1] 也是指向 char 数组的指针。isdigit您应该向and发送一个字符,而isalpha不是一个指针。您可能因此而遇到分段错误。


推荐阅读