可改變陣列大小,滿足你可能的輸入狀況。
#include<stdio.h>
int main(){
char str[200]; // 假定輸入1行字串,長度在200以內
char s[20][16]; // 假定 用逗號分隔 的部分 約20個,每個長度 不超過16字元
double d[20]; // 假定資料個數 不超過 20 個
int i,j=0,L,n=0;
fgets(str,200,stdin); // 讀入一行 字串,含換行符
L = strlen(str); //計算輸入的字串長度
for (i=0;i<L;i++){
s[n][j]=str[i]; j++;
if (str[i]=="," || str[i]=="\n") {s[n][j-1]="\0"; j=0; n++;} // 取出 逗號分隔 開的字串
}
for (i=0;i<n;i++) printf("%s\n",s[i]); //輸出這些 分開的字串
j=0;
for (i=0;i<n;i++){
if ( sscanf(s[i],"%lf",&d[j]) == 1) j++; // 能轉換為數的一個一個轉換
printf("\n=======values========\n");
for (i=0;i<j;i++) printf("%lf\n",d[i]); // 輸出這些資料
return 0;
可改變陣列大小,滿足你可能的輸入狀況。
#include<stdio.h>
int main(){
char str[200]; // 假定輸入1行字串,長度在200以內
char s[20][16]; // 假定 用逗號分隔 的部分 約20個,每個長度 不超過16字元
double d[20]; // 假定資料個數 不超過 20 個
int i,j=0,L,n=0;
fgets(str,200,stdin); // 讀入一行 字串,含換行符
L = strlen(str); //計算輸入的字串長度
for (i=0;i<L;i++){
s[n][j]=str[i]; j++;
if (str[i]=="," || str[i]=="\n") {s[n][j-1]="\0"; j=0; n++;} // 取出 逗號分隔 開的字串
}
for (i=0;i<n;i++) printf("%s\n",s[i]); //輸出這些 分開的字串
j=0;
for (i=0;i<n;i++){
if ( sscanf(s[i],"%lf",&d[j]) == 1) j++; // 能轉換為數的一個一個轉換
}
printf("\n=======values========\n");
for (i=0;i<j;i++) printf("%lf\n",d[i]); // 輸出這些資料
return 0;
}