사용자가 콘솔에 입력하는 문자열에서 정수를 가져와야합니다.scanf로 문자열 파싱
예 : 나는 다음 문자열을 가지고 있습니다 : [1, 2, 3, 4, 5]
그리고 나는 그것으로부터 모든 정수를 얻고 싶습니다. 이미 scanf("%*[^\[]%d,", &a)
과 같은 복수 scanf
패턴을 시도했지만 아무 효과가 없습니다. 스택 오버플로 관련 항목을 찾을 수 없습니다.
주요 문제는 문자열에 1에서 50 개의 정수를 입력 할 수 있다는 것입니다. 배열에 정수 만 저장하는 방법에 대해서는 잘 모른다. (','및 '' ''를 제거하라.)
일부 솔루션은 [] 또는, 같은 특수 문자를 제거하기 위해 발견되었습니다하지만 지금은 여전히
편집 ... 혼수와 정수 사이의 공간을 제거해야합니다 : 문제는 fgets를 사용하여 해결했다. 내 문자열을 얻기 위해 scanf를 사용했지만 SPACES에 멈추고있었습니다.
좋아한다 밖으로 scanf와 함께 그렇게하는 방법 :
동안 (는 scanf ("% d 개", & 내가))
이 링크를 본 적이 있나요? http://stackoverflow.com/questions/9210528/split-string-with-delimiters-in-c – Marievi
질문이 명확하지 않아 본질적으로 도움이되지 않는 코드 작업을 요청하는 질문을했기 때문에 투표를 마감하기로 결정했습니다. 'scanf()'는 문자열에서 읽는 데 사용되지 않으므로 "패턴"이 작동하지 않습니다. 'sscanf()'[두 번's'에주의하십시오]는 그 목적으로 사용될 수 있습니다. – Peter
조언 : 'scanf' 및 친구들과 구문 분석하지 마세요. 'scanf'는 입력이 미리 결정된 경우에만 사용할 수 있습니다. –