我可以将浮点数组转换为字符串吗?我不关心点是否作为字符串值。我只需要把数字分成字符串。
到目前为止我已经做过了
void H(float *suma, int k){
int i=0;
char str[200] = "";
sprintf(str, "%.2f", *suma);
for(i=0;i<strlen(suma);i++) {
printf("%c", str[i]);
}
}
,但它只转换第一个值在我的浮点数组。我希望我说得很清楚。如果不是,这里有一个我的问题的例子。
array[0]= 123.45;
array[1]= 543.21;
但是我需要它
string[0]='1';
string[1]='2';
string[2]='3';
string[3]='.';
string[4]='4';
string[5]='5';
string[6]='5';
string[7]='4';
等等…
如果您想以字符串格式打印所有数组数字的列表,这里是解决方案(我假设k是float数组的长度):
void H(float *suma, int k){
int i=0, j;
char str[200] = "";
for(j=0;j<k;j++){
sprintf(str, "%.2f", *(suma+j));
for(i=0;str[i]!=' ';i++) {
printf("%cn", str[i]);
}
}
}
你可以使用strcat()来连接字符串,如果你想把所有的字符串连接成一个字符串。
解决方案:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void H(float *suma, int k)
{
int i,j;
char str[200] = "";
for(j=0; j<k; j++)
{
sprintf(str, "%.2f", suma[j]);
for(i=0;i<strlen(str);i++)
{
printf("%c", str[i]);
}
printf("n");
}
}
int main ()
{
float b[]={123.432,213.432,12.2,31.3,13.4};
H(b,5);
system("pause");
return 0;
}