我正在尝试用c编写一个程序,将给定整数数组的特定部分转换为字符串。
但我收到此错误
警告:格式'%s'需要'char *'类型的参数, 但是参数2的类型为'int'
我写了这段代码:
task
非常感谢任何帮助。
答案 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;
}