c語言將數字轉換為字元串
『壹』 c語言/*數字轉換成字元串*/
運行截圖:
程序如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num; // 需要轉換的數字
char *str; // 接受數字轉換的字元串
int numLen; // 數字位數
int temp; // 臨時變數
scanf("%d", &num); // 輸入
temp = num; // 臨時變數計算
numLen = 0;
while (temp) // 計算位數
{
temp /= 10;
numLen++;
}
if (num < 0) // 負數的情況
numLen++;
str = (char *)malloc((numLen + 1) * sizeof(char)); // 分配字元串空間
str[numLen] = '\0'; // 防止出現亂碼
temp = num; // 保存臨時副本
while (num) // 轉換為字元串
{
str[numLen-- - 1] = abs(num) % 10 + '0';
num /= 10;
}
if (temp < 0) // 如果是負數
str[0] = '-';
printf("%s", str);
system("PAUSE>NUL");
return 0;
}
『貳』 C語言將數字轉換為字元型輸出(用函數)
可以使用sprintf函數實現功能。
sprintf的聲明為
int sprintf(char *dst, const char * format_str...);
其功能為:將...部分的參數,按照format_str的要求,輸入到dst中。
需要根據數字的類型,使用format_str。
如整型(int)的使用方式為
sprintf(buf, "%d", a);
如果a為123,那麼buf中的字元串為"123"。
常見的數字類型還有:
1 short, 用%h輸出;
2 long, 用%ld輸出;
3 float, 用%f輸出;
4 double, 用%lf輸出。
『叄』 C語言中如何將數字變成字元串啊
C語言提供了幾個標准庫函數,可以將任意類型(整型、長整型、浮點型等)的數字轉換為字元串。用itoa()函數將整數轉換為字元串。
itoa()函數有3個參數:第一個參數是要轉換的數字,第二個參數是要寫入轉換結果的目標字元串,第三個參數是轉移數字時所用的基數。在上例中,轉換基數為10。
#include <stdio.h>
int main()
{
int a[4]={1,2,3,4};
char b[4];
for(int i=0;i<4;i++)
b[i]=a[i];
for(int i=0;i<4;i++)
printf("%c",b[i]);
return 0;
}
字元串在存儲上類似字元數組
它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。
兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
以上內容參考:網路-字元串
『肆』 用c語言怎麼將整數轉換成字元串
1.int/float to string/array:
C語言提供了幾個標准庫函數,可以將任意類型(整型、長整型、浮點型等)的數字轉換為字元串,下面列舉了各函數的方法及其說明。
● itoa():將整型值轉換為字元串。
● ltoa():將長整型值轉換為字元串。
● ultoa():將無符號長整型值轉換為字元串。
● gcvt():將浮點型數轉換為字元串,取四捨五入。
● ecvt():將雙精度浮點型值轉換為字元串,轉換結果中不包含十進制小數點。
● fcvt():指定位數為轉換精度,其餘同ecvt()。
除此外,還可以使用sprintf系列函數把數字轉換成字元串,其比itoa()系列函數運行速度慢
2. string/array to int/float
C/C++語言提供了幾個標准庫函數,可以將字元串轉換為任意類型(整型、長整型、浮點型等)。
● atof():將字元串轉換為雙精度浮點型值。
● atoi():將字元串轉換為整型值。
● atol():將字元串轉換為長整型值。
● strtod():將字元串轉換為雙精度浮點型值,並報告不能被轉換的所有剩餘數字。
● strtol():將字元串轉換為長整值,並報告不能被轉換的所有剩餘數字。
● strtoul():將字元串轉換為無符號長整型值,並報告不能被轉換的所有剩餘數字。
C語言實現:
#include
#include
void itoa (int n,char s[]);
//atoi 函數:將s轉換為整形數
int main(void )
{
int n;
char s[100];
printf("Input n: ");
scanf("%d",&n);
printf("the string : ");
itoa (n,s);
return 0;
}
void itoa (int n,char s[])
{
int i,j,sign;
if((sign=n)<0)//記錄符號
n=-n;//使n成為正數
i=0;
do{
s[i++]=n%10+'0';//取下一個數字
}
while ((n/=10)>0);//刪除該數字
if(sign<0)
s[i++]='-';
s[i]='