首页 文章

为什么atoi功能不起作用?

提问于
浏览
2

该程序停止工作 . 即使我只放了一个int . 我尝试了很多不同的方法,但无法弄清楚出了什么问题 . 我试图输入由空格分隔的整数 . 可以有任何整数 .

#include<stdio.h>
#include<stdlib.h>

int main(void) {
    int i,j=0;
    int b[100];
    char a[100];
    fgets(a,100,stdin);
    for(i=0;i<strlen(a);i++)
    {
        b[i] = atoi(a[j]);
        j=j+2;
    }
    for(i=0;i<strlen(b);i++)
    {
        printf("%d ",b[i]);
    }
}

2 回答

  • 1

    这是atoi的原型,你必须使用一个字符数组,但你只发送一个字符 . atoi(str[i])

    int atoi(const char *str)
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
       int val;
       char str[20];
    
       strcpy(str, "98993489");
       val = atoi(str);
       printf("String value = %s, Int value = %d\n", str, val);
    
    
       return(0);
    }
    
  • 1

    请执行下列操作:

    for(i = 0; i < strlen(a); i += 2)
    {
        b[j] = a[i];
        j++;
    }
    

相关问题