내 문제는 숫자 문자열을 받아들이고 화면에 다른 숫자를 표시하는 것이 었습니다. 그래서 strtok()
을 사용하여 문자열을 다른 숫자로 나눠보고 숫자로 변환하려면 atoi()
을 사용하려고했습니다. 하지만 런타임 오류가 발생했습니다 .. 나는 또한 샘플 코드를 첨부했습니다.C에서 atoi()를 사용하는 런타임 오류
입력
1 22 123 89 12 as a string
출력 나는이 숫자에 수학 연산을 할 필요가
1 22 123 89 12 as numbers
. 그래서 정수에서 문자열로 변환해야합니다.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,j;
char buffer [256];
char *token;
const char s[2]= " ";
fgets (buffer, 256, stdin);
token=strtok(buffer,s);
i = atoi (token);
printf("%d \n",i);
while (token!=NULL)
{token=strtok(buffer,s);
i = atoi (token);
printf("%d ",i);
}
return 0;
}
'atoi'는'NULL' 포인터의 segfaults입니다. –
'atoi'를 호출하기 전에'token! = NULL'을 확인하십시오. 현재 null을 확인하기 전에 atoi를 호출하고 있습니다. –