热心网友
回答时间:2022-04-18 05:24
可改变数组大小,满足你可能的输入状况。
#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;
}
收起
热心网友
回答时间:2022-04-18 06:42
用memcpy函数。如memcpy(x,y+3,4);*(x+5)='\0';,这样就把字符串y中的下标为3的字符开始的连续4个字符拷贝到了x,然后*(x+5)='\0';在4个字符后补一个'\0'构成字符串。
收起