C语言中能不能实现“如果a是 x_y_z这样的格式,则把x赋予b,y赋予c,z赋予d”?

如题所述

可以。
假定 a 是 字符串形式 123_45_6789
可以通过 sscanf() 读出:
b=123 c=45 d=6789

假定 A 是 字符串形式 12.3_-4.5_67.89
可以通过 sscanf() 读出:
B=12.3 C=-4.5 D=67.89

程序如下:

#include <stdio.h>

int main()
{
char a[]="123_45_6789";
int b,c,d;
char A[]="12.3_-4.5_67.89";
float B,C,D;
sscanf(a,"%d_%d_%d",&b,&c,&d);
printf("%d %d %d\n",b,c,d);
sscanf(A,"%f_%f_%f",&B,&C,&D);
printf("%g %g %g\n",B,C,D);

return 0;
}追问

那能不能这样处理用户输入的字符串?

追答

不能。可以改一下:
#include
#include

int main()
{
char a[]="123_45_6789";
char b[8],c[8],d[8];
int i;
for (i=0;i<strlen(a);i++) if (a[i]=='_') a[i]=' ';
sscanf(a,"%s %s %s",b,c,d);
printf("%s %s %s\n",b,c,d);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-23
*a="x_y_z";
b=*a;
c=*(a+2);
z=*(a+4);
第2个回答  2014-01-23
函数可以实现 main函数中形参fun(x.y.z)fun函数实参(b.c.d)即可赋值
第3个回答  2014-01-23
当然可以实现
相似回答