난 char 배열을 delimate하는 방법을 배우고 다른 변수로 숫자 및 문자열을 분할하고 그들을 인쇄 작업을 할 필요가. 나는 내가 가까이에 있다고 믿지만, 내 번호가되어야하는 것을 인쇄 할 때 나는 미친 숫자를 얻는다. 이것은 int에 대한 주소입니까? 어떤 조언을 크게 주시면 감사하겠습니다! 내 코드 및 입력/출력 :strtok 및 int 대 char in C
#include <stdio.h>
int main() {
setbuf(stdout, NULL);
char name[10];
printf("Enter in this format, integer:name\n");
fgets(name, 10, stdin); //my input was 2:brandon
char *n = strtok(name, ":");
int num = (int)n;
char * order = strtok(NULL, ":");
printf("%d,%s", num,order); //my output was 7846332,brandon
return (0);
}
'strtol 함수를()'atoi 함수'보다 더 나은 선택()'때문에 strtol 함수 더 유연하고 atoi는 오류보고에 대해 절름발이입니다. –
달콤한 이제 고마워! – Branbron
@ John Hascall 좋은 오류 처리의 가능성 때문에'strtol()'이'atoi()'보다 낫다. 그러나 그것은'errno = 0; char * endptr; 긴 tmp = strtol (n, & endptr, 10); if (endptr == n) Handle_NoConversion(); if (errno || tmp INT_MAX) Handle_Overflow(); n = (int) tmp;' –
chux