4 回答

TA貢獻1830條經(jīng)驗 獲得超9個贊
sbuffer錯了。
不能是char sbuffer;
應該是char sbuffer[100];
或char* sbuffer;sbuffer=malloc(100*sizeof(char));之類。
sprintf中的第一個參數(shù)是緩沖區(qū)首地址,就是存放sprintf輸出內(nèi)容的地方。要求是char*類型。所以用char變量作第一個參數(shù)當然會提示錯誤。

TA貢獻1752條經(jīng)驗 獲得超4個贊
給,已經(jīng)編譯運行確認:
#include<conio.h>
#include<stdio.h>
char s[20]={NULL};//用以存放字符型輸出結果的字符數(shù)組
void inttostring(int n)//轉(zhuǎn)換用的函數(shù)
{
int i=0,j;
char temp;
while(n)//先將整數(shù)逆序保存進數(shù)組
{
s[i]=n%10+'0';//將十進制數(shù)字轉(zhuǎn)換成字符保存
n=n/10;
i++;
}
for(j=i-1;j>=i/2;j--)//再將逆序的字符結果再逆轉(zhuǎn)一次,得到正確結果
{
temp=s[j];
s[j]=s[i-j-1];
s[i-j-1]=temp;
}
}
int main()
{
int i;
printf("please input a number: ");
scanf("%d",&i);
inttostring(i);
printf("String is: %s",s);
getch();
return 0;
}
添加回答
舉報