将整数数组转换为字符串?

时间:2015-09-03 18:43:20

标签: c

我正在尝试用c编写一个程序,将给定整数数组的特定部分转换为字符串。

但我收到此错误

  

警告:格式'%s'需要'char *'类型的参数,   但是参数2的类型为'int'

我写了这段代码:

task

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

  C语言中的

itoa()函数将int数据类型转换为字符串数据   类型。

您可以使用itoa()中的stdlib.h功能。但是,我必须使用myitoa()因为它可能不是标准的。我不确定。简单地说,我编写简单的代码,你可以修改它。

#include <stdio.h>

void myitoa(char *str, int num)
{
    int i, rem, len = 0, n;

    n = num;
    while (n != 0)
    {
        len++;
        n /= 10;
    }
    for (i = 0; i < len; i++)
    {
        rem = num % 10;
        num = num / 10;
        str[len - (i + 1)] = rem + '0';
    }
    str[len] = '\0';
}

int main()
{
    int array[] = { 2, 3, 4, 13 };
    char buffer[4][10];
    int size = sizeof(array) / sizeof(*array) ;
    int i;

    for (i = 0; i < size; i++)
    {
        myitoa(buffer[i],array[i]);
        printf("%s\n", buffer[i]);
    }
    return 0;
}

答案 1 :(得分:0)

感谢上面的所有评论和答案,这是我的代码照其中:

#include <stdio.h>
#include <string.h>

const char* myFunction(int n[1000], int size)
{
        static char s1[1000],s[1000]= "";
        int i;
        for( i=0;i<size;i++)
           {
           sprintf(s1, "%d", n[i] );
           strcat(s,s1);
           strcat(s, " ");
           } 
        return s;
}

int main()
{
   int n[1000]= {2,3,4,9};
printf("%s", myFunction(n, 4) );
    return 0;
}