[英]String of variable length to int array?
我有一個字符串,其形式為“ 1 2 8 4 9 0”等。我知道它將遵循整數,空格,整數的格式。
但是,我不能保證長度。 我知道最大長度,如果有幫助的話。 我以為使用sscanf,但它需要有限數量的整數。
任何想法如何將“ 1 2 3”變成一個數組
A [0] = 1
A [1] = 2
A [2] = 3
謝謝!
strtol
指示字符串失敗的位置。
對於類似"1 2 3 ..."
的字符串,它將讀取1
並隨后失敗; 如果您隨后將該故障點( " 2 3 ..."
)傳遞給strtol
,它將讀取2
並在此之后立即故障,...,...
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char input[] = "6 82 -7453 4 0 63 ";
char *err = " ", *curr = input;
int x, k = 0;
while (*curr && isspace((unsigned char)*err)) {
x = strtol(curr, &err, 10);
printf("#%d: %d\n", k++, x);
curr = err + !!*err; // do not advance past the '\0'
}
return 0;
}
實際操作中看到它 -與上面的代碼段不同,ideone處的代碼使用1:/初始化k
,並且對以空格結尾的輸入處理不佳。
采用
rc = sscanf(string, "%d%n", &array[i], &len);
在一個循環中。 測試rc,然后使用len跳到下一項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.