"102.33, 220.44"와 같은 문자열을 C에서 double []로 변환 할 수 있는지 알고 싶습니다. 그렇다면 어떻게 수행합니까?쉼표로 구분 된 문자열을 double로 변환하십시오.
답변
한가지 방법은 어레이에 저장할 수있는 이중 각 토큰 변환 ' '
과 같은 분리 ','
및 strtod으로 strtok를 사용하는 것이다. 당신은 strtok를이 샘플 코드에 몇 가지 사소한 수정을 함께 할 수있을 것입니다 : 당신은 sscanf
또는 strtod
을 사용할 수 있습니다
int main()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
조심해! strtok의 대부분의 구현은 null 입력 문자열을 주어진 SIG11을 던집니다. 테스트 해보는 것이 가장 좋습니다 (코드를 이식 할 필요가 없더라도). 그리고 (이제는 내가 생각하기에) strtok의 많은 구현 또한 "토큰을 찾을 수 없습니다"라는 SIGSEG ... 그래서 sscanf는 일반적으로보다 안정적인 대안입니다. – corlettk
gcc와 Visual Studio의 첫 번째 입력으로 NULL을 사용하는 strtok을 사용했지만 sscanf는 더 다양한 대안처럼 보이며 위의 두 가지 방법으로 호출 할 필요가 없습니다. –
(strtok
이 필요하지 않습니다). 문자열의 다음 숫자 (예 : 220.44)를 얻고 싶다면 strtod
을 사용하여 가장 먼저 숫자를 얻은 다음 쉼표를 건너 뛰고 반복하십시오.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *p;
double val;
char str[] = " 102.33, 220.44";
int n = sscanf(str, "%lf", &val);
printf ("Value = %lf sscanf returned %d\n", val, n);
val = strtod(str, &p);
printf ("Value = %lf p points to: '%s'\n", val, p);
return 0;
}
- 1. 문자열을 double로 변환하십시오.
- 2. 문자열을 double로 변환하십시오.
- 3. 문자열을 double로 변환하십시오.
- 4. Entity Framework에서 쉼표로 구분 된 값 문자열을 string []으로 변환하십시오.
- 5. 쉼표로 구분 된 문자열을 심볼로
- 6. 레일 루프 쉼표로 구분 된 문자열을 통해
- 7. 쉼표로 구분 된 문자열을 만드는 방법은 무엇입니까?
- 8. 쉼표로 구분 된 문자열을 연결할 수 없습니다.
- 9. 쉼표로 구분 된 문자열을 배열로 가져 오기
- 10. 문자열을 쉼표로 구분 된 쿼리로 사용
- 11. (T)를 쉼표로 구분 된 ID의 문자열로 변환하십시오.
- 12. 과학 표기법으로 표현 된 문자열을 float 및 double로 변환하십시오.
- 13. 문자열을 double로 변환합니다.
- 14. 쉼표로 구분 된 목록
- 15. 쉼표로 구분 된 정규식
- 16. 방지 쉼표로 구분 된 목록이
- 17. 문자열 백분율을 double로 변환하십시오.
- 18. int를 double로 변환하십시오.
- 19. LINQ를 사용하여 테이블의 쉼표로 구분 된 문자열을 값의 고유 한 모음으로 변환하십시오.
- 20. 새 행으로 쉼표로 구분 된 셀 구분
- 21. SQL 쿼리의 IN 절에서 문자열을 쉼표로 구분
- 22. 별도 쉼표로 구분
- 23. MySQL에서 쉼표로 구분 된 변수
- 24. 쉼표로 구분 된 벡터 만들기
- 25. PHP에서 쉼표로 구분 된 목록
- 26. 는 쉼표로 구분 된 이메일
- 27. SQL 쉼표로 구분 된 목록
- 28. 쉼표로 구분 된 값이 과정
- 29. Regex : 쉼표로 구분 된 정수
- 30. 쉼표로 구분 된 MySQL 테이블에
예, 가능합니다. –
나는 noobs가 간단한 질문에 도움이 필요하기 때문에 나는이 질문을 upvoted, 누군가가이 하나가 중복되는 정확한 질문을 지적하지 않는 한/나는 나의 총에 충실 할 것이다. SO의 진술 된 목표 중 하나는 멍청이들과 전문가들을위한 최고의 모임 장소가되는 것입니다. 너를 생각해 보라. 나는 또한 유머 감각이 강하기 때문에 그 narky를 "예, 가능하다"라고 덧붙였다. – corlettk
여기에서 주된 실수는 문제를 구성 문제로 분해하지 않는 것입니다. 먼저 문자열을 두 개의 하위 문자열로 분리 한 다음 각 하위 문자열을 구문 분석하여 숫자를 추출해야합니다. 문제를 "파헤 치는"방법에 대한 일반적인 개념을 얻지 못하면 많은 문제가 발생할 것입니다. –