c語言數組轉換成字元串
⑴ c語言如何將數組轉成字元串
數組是指針,如果是字元數據就已經是字元串了,其它類型可以使用對應的函數轉換,如inttostr,floattostr等。
⑵ C語言中怎樣將一個字元數組裡面的所有元素變成一個字元串
首先要明確的是,「字元串」在C語言中的含義實際上就是一個char類型的指針或數組,且最後一位置為0標記字元串的結束。所以,你所說的」字元數組「我是否可以理解為一個沒有終結符0的char類型數組?
這樣的話,方法如下
#include<string.h>
intmain()//這里為了方便直接用main函數
{
chararray[]={'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拷貝字元
return0;
}
實際上在C中,指針和數組還是有一點微妙的區別的,具體可參考度娘
⑶ C語言,整數數組轉化為字元串
C有「整數數組轉化為字元串」的專用庫函數char *itoa(int num,char *str,int radix)。聲明一個存放轉換後的字元串的二維字元數組,將整型數組的元素作為num來調用itoa函數,將結束存入二維數組即可。舉例代碼如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
inta[8]={123,234,345,10,787,743891,123456789,0},i;
charx[8][11]={"",};
for(i=0;i<8;i++){
itoa(a[i],x[i],10);//將整數a[i]按十進制轉換成字元串存入字元數組x[i]
printf("%s",x[i]);//打出來看看......
}
printf(" ");
return0;
}
⑷ C語言中如何把int型數組轉化為字元串
不準用sprintf 之類函數,要自己寫,那麼 這樣自己寫i2s如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void i2s(int x, char *s){
int v,xx,i,j,n=0;
char c;
xx = abs(x);
while(1){
v=xx%10;
s[n]=v+'0'; n++;
xx=(xx-v)/10;
if (xx==0) break;
}
if (x<0) {s[n]='-'; n++;}
for (i=0;i<n/2;i++){
c=s[i]; s[i]=s[n-i-1];s[n-i-1]=c;
}
s[n]='\0';
}
main()
{
int a[4]={12,34,-56,789};
char s[4][15];
int i;
for (i=0;i<4;i++){
i2s(a[i],s[i]);
printf("%s ",s[i]);
}
return 0;
}
輸出:12 34 -56 789
如用
int i2s(int x, char *s){
//全部照舊
return n;
}
可以返回字元串長度。
你若想把所有輸出放入一個長長的char 數組,有了每個字元串長度,應當很容易自己做了--即使不用strcat()。
⑸ C語言字元數組轉換字元串
不可能做得完全一樣!char *s = "abc";這樣的定義意思是「創建一個常字元串abc,將首地址(就是a的地址)賦給char*型指針s」。可以設法讓數組a變成字元串,再讓一個s指針指向它,但目標卻不是常量,也不在常量區。可以用下面的代碼做個效果差不多的轉換。
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
chara[3]={'a','b','c'},b[4];
constchar*s;
b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]='