공백으로 구분 된 5 개의 정수가있는 문자열이 있습니다. 예를 들면 다음과 같습니다. 12 33 45 0 1
문자 배열의 정수 읽기
여기에 5 개의 변수가 있습니다.이 변수에는이 숫자를로드 할 변수가 있습니다. 더 번 atoi
번으로 전화 할 수 있습니까? 아니면 어떻게 가능합니까?
char c[] = "12 33 45 0 1";
int a1, a2, a3, a4, a5;
공백으로 구분 된 5 개의 정수가있는 문자열이 있습니다. 예를 들면 다음과 같습니다. 12 33 45 0 1
문자 배열의 정수 읽기
여기에 5 개의 변수가 있습니다.이 변수에는이 숫자를로드 할 변수가 있습니다. 더 번 atoi
번으로 전화 할 수 있습니까? 아니면 어떻게 가능합니까?
char c[] = "12 33 45 0 1";
int a1, a2, a3, a4, a5;
사용 strtok는 토큰으로 문자열을 분할하고 각각에 atoi
를 사용합니다.
간단한 예 :
char c[] = "1 2 3"; /* our input */
char delim[] = " "; /* the delimiters array */
char *s1,*s2,*s3; /* temporary strings */
int a1, a2, a3; /* output */
s1=strtok(c,delim); /* first call to strtok - pass the original string */
a1=atoi(s1); /* atoi - converts a string to an int */
s2=strtok(NULL,delim); /* for the next calls, pass NULL instead */
a2=atoi(s2);
s3=strtok(NULL,delim);
a3=atoi(s3);
까다로운 일에 대한 strtok
우리가 첫 번째 토큰에 대한 원래의 문자열을 전달한다는 것입니다, 다른 토큰 NULL
.
감히 샘플 코드를 삽입 하시겠습니까? 그렇지 않으면 당신의 대답이 너무 짧아서 완벽한 대답이 아니라 의견에 더 잘 들어 맞을 것입니다. –
@JanVlcinsky - 네 말이 맞아. 댓글 주셔서 감사합니다. – Benesh
또한 숫자를 변환 sscanf
를 사용하지만,
if (sscanf(c, "%d%d%d%d%d", &a1, &a2, &a3, &a4, &a5) != 5)
printf("Well, that didn't work\n");
당신은 아마 * 배열 *라는 하나 개의 다른 개념을 배울 필요가 반환 값을 확인하는 확신 할 수 있습니다. –