0

我可以将浮点数组转换为字符串吗?我不在乎点是否是字符串值。我只需要将数字分成字符串。

到目前为止,我已经做到了

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';

ETC...

4

2 回答 2

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;
}
于 2013-04-07T21:04:31.613 回答
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() 来连接字符串。

于 2013-04-07T21:06:17.130 回答