當前位置:首頁 » 編程語言 » c語言把數組轉為字元型數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言把數組轉為字元型數組

發布時間: 2023-08-22 03:35:30

『壹』 c語言,如何將整數數組轉化為字元串

#include <stdio.h>
void main()
{
int d[5]={4,5,3,2,5};
char a[80];
int i;
for(i=0;i<5;i++)
a[i]=d[i]+'0';
a[i]='\0'; //這個很重要,是字元串結束符
printf("%s\n",a);
}

『貳』 C語言中,如何將一個數組中的數值轉換成字元串輸出

#include<stdio.h>

void IntToStr(int *i, char *c, int len)

{//i為整形數組,c為要存放字元串的數組,len為整形數組元素個數

int k;

char tmp[10];

for(k=0;k<len;k++)

{

itoa(i[k],tmp,10);

strcat(c,tmp);

int main()

或:

#include <string.h>

int main() // 這里為了方便直接用main函數

{

char array[] = { 'h', 'e', 'l', 'l', 'o' };

/* 需要注意的是,這里沒有終結符,故需要知道數組的 */

/* 大小(數組的大小是編譯時常量)*/

char *dest_str; // 目標字元串

dest_str = (char *)malloc(sizeof(char) * (sizeof(array) + 1));

/* 為字元串分配堆空間 */

strncpy(dest_str, array, sizeof(array));

// 用C標准庫函數strncpy拷貝字元

return 0;

}

(2)c語言把數組轉為字元型數組擴展閱讀:

字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

『叄』 C語言 數組類型轉換,怎樣將一個float類型的數組轉換成字元(串)數組

不使用sprintf,使用求余%,且代碼少

#include<stdio.h>
#include<math.h>

//4個二進制位轉成一個16進制位的字元(3個二進制位轉成一個8進制位的字元)(十進制0-9轉成字元)
(unsignedcharnum)
{
switch(num)
{
case0:return'0';
case1:return'1';
case2:return'2';
case3:return'3';
case4:return'4';
case5:return'5';
case6:return'6';
case7:return'7';
case8:return'8';
case9:return'9';
case10:return'A';
case11:return'B';
case12:return'C';
case13:return'D';
case14:return'E';
case15:return'F';
default:return'X';
}
}

//字元串反轉
voidReverseString(char*Source,intBegin,intEnd)
{
inti;
charTemp;
for(i=0;i<((End-Begin+1)/2);++i)
{
Temp=Source[Begin+i];
Source[Begin+i]=Source[End-i];
Source[End-i]=Temp;
}
}

//比較float類型大小
intCompareFloat(floatA,floatB)
{
if((A<B)
&&(fabs(A-B)>1e-6f))
{
return-1;
}
elseif((A>B)
&&(fabs(A-B)>1e-6f))
{
return1;
}
else
{
return0;
}
}
//float轉字元串(十進制)(Precision是小數精度)
voidFloatToStringDecimal(floatFloat,char*Destination,unsignedintPrecision)
{
if(CompareFloat(Float,0)!=0)
{
//將小數移到整數位
floatTemp=Float*powf(10.0f,(float)Precision);
//負數轉成正數,否則不能使用迷之轉換
if(CompareFloat(Temp,0)==-1)
{
Temp=-Temp;
}
floatIntInFloat=0.0;
modff(Temp,&IntInFloat);
inti=0;
unsignedcharnum;
for(i=0;(i<(int)Precision)&&(CompareFloat(IntInFloat,0)!=0);++i)
{
//float轉成unsignedint
//迷之轉換(因為不知道內部如何實現,所以叫迷之轉換)
num=(unsignedchar)((unsignedint)IntInFloat%10);
Destination[i]=(num);
IntInFloat/=10;
modff(IntInFloat,&IntInFloat);
}
if(Precision!=0)
{
Destination[i]='.';
++i;
}
while(CompareFloat(IntInFloat,0)!=0)
{
num=(unsignedchar)((unsignedint)IntInFloat%10);
Destination[i]=(num);
IntInFloat/=10;
modff(IntInFloat,&IntInFloat);
++i;
}
if(CompareFloat(Float,0)==-1)
{
Destination[i]='-';
++i;
}
ReverseString(Destination,0,i-1);
Destination[i]='';
return;
}
else
{
Destination[0]='0';
Destination[1]='';
return;
}
}

然後是測試

//測試代碼
fprintf(FP_BaseZeroth,"測試對象:voidFloatToStringDecimal(floatFloat,char*Destination,unsignedintPrecision) ");
fprintf(FP_BaseZeroth,"測試輸入:0;123;123.456;-123;-123.456;1.23456e10f; ");
fprintf(FP_BaseZeroth,"預測輸出:0;123;123.456;-123;-123.456;有效數字部分確定 ");
fprintf(FP_BaseZeroth,"實際輸出:");
floatA[6]={0.0f,123.0f,123.456f,-123.0f,-123.456f,1.23456e10f};
charDes[100];
FloatToStringDecimal(A[0],Des,0);
fprintf(FP_BaseZeroth,"%s;",Des);
FloatToStringDecimal(A[1],Des,0);
fprintf(FP_BaseZeroth,"%s;",Des);
FloatToStringDecimal(A[2],Des,3);
fprintf(FP_BaseZeroth,"%s;",Des);
FloatToStringDecimal(A[3],Des,0);
fprintf(FP_BaseZeroth,"%s;",Des);
FloatToStringDecimal(A[4],Des,3);
fprintf(FP_BaseZeroth,"%s;",Des);
FloatToStringDecimal(A[5],Des,3);
fprintf(FP_BaseZeroth,"%s;",Des);
fprintf(FP_BaseZeroth," ");

測試結果

『肆』 c語言 數組可以轉換成字元串嗎

c語言數組可以轉換成字元串。
實際上,c語言中的字元串就是一個字元數組,數組最後一個元素為"\0",表示字元串的結束位置。

『伍』 求助:怎麼用C語言把一個整數轉換為字元串,如:整數123轉換為字元串「123」

1、一位的整型數轉換為字元。首先,定義一個整型變數,保存轉換的一位整型數值。

『陸』 C語言 將整形數組轉換成字元數組

我了個去啊 你這是整型數組啊 暈 你是要將int的123轉換成字元型的"123」是吧 不是有個函數叫itoa(); 你直接用就行了 如果你要自己寫 可以用我下面的程序:
#include<stdio.h>
char *fun(int n,char *str)
{
int m,l=0,i;
m=n;
while(m!=0)
{
m=m/10;
l++;
}

for(i=l;i>=0;i--)
{
if(i==l)
{
str[i]='\0';
}
else
{
str[i]=n%10+48;
n=n/10;
}
}

return str;
}

int main()
{
int a;
char str[10]={0};
printf("input a number:\n");
scanf("%d",&a);

puts(fun(a,str));
return 0;
}