我可以将float数组转换为字符串吗?我不在乎这个点是否为字符串值。我只需要将数字分成字符串。
到目前为止我已经完成了这个
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';
等...
答案 0 :(得分:1)
这是一个解决方案:
#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;
}
答案 1 :(得分:1)
如果你想以字符串格式打印所有数组的列表,这里是解决方案(我假设k是浮点数组的长度):
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]!='\0';i++) {
printf("%c\n", str[i]);
}
}
}
如果您希望将所有字符串放在一个字符串中,则可以使用strcat()来连接字符串。