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

c語言數組多位元組合並

發布時間: 2022-08-17 06:43:06

❶ 怎麼用c語言將兩個數組並起來

看代碼,寫了幾種數組的合並:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
voidcharacter()
{
charc1[]={'H','e','l','l','o'};
charc2[]={'','w','o','r','l','d','!'};
intk=0;
charnew_c[100];
for(inti=0;i<sizeof(c1);i++)//注意是sizeof()
new_c[k++]=c1[i];
for(i=0;i<sizeof(c2);i++)
new_c[k++]=c2[i];
new_c[k]='';
puts(new_c);

}
voidstring()
{
chars1[]={"hello,"};
chars2[]={"c語言!"};
intk=0;
charnew_s[100];
for(inti=0;i<strlen(s1);i++)//注意是strlen()
new_s[k++]=s1[i];
for(i=0;i<strlen(s2);i++)
new_s[k++]=s2[i];
new_s[k]='';
puts(new_s);
}
voidnumber()
{
intnum1[]={1,2,3},*p1=num1;
intnum2[]={4,5,6,''};//整型數組,字元數組是沒有結束符號,自己加入『』
intnew_num[100];
intk=0;
for(inti=0;i<sizeof(num1)/sizeof(int);i++)
{
new_num[k++]=*(p1++);
}
for(i=0;num2[i]!=0;i++)
{
new_num[k++]=num2[i];
}
new_num[k]='';
for(i=0;new_num[i]!=0;i++)
{
printf("%d",new_num[i]);
}
puts("");

}
voidmain()
{
character();//字元數組的合並
string();//字元串的合並
number();//整型數組的合並,做法是一樣的

}

運行截圖:

❷ c語言,怎樣合並數組

#include<stdio.h>
#include<string.h>
intmain()
{
chara[1000],b[100],c[100];
inti=0,m,j=0,n;
printf("請輸入2個從小到大排序的字元串: ");
gets(b);
gets(c);
m=strlen(b)+strlen(c);
for(n=0;n<m;n++)
{
if(i<strlen(b))
{
if(j<strlen(c))
{
if(b[i]<c[j])
{
a[n]=b[i];
i++;
}
else
{
a[n]=c[j];
j++;
}
}
else
{
a[n]=b[i];
i++;
}
}
elseif(j<strlen(c))
{
a[n]=c[j];
j++;
}
else
break;
}
a[n]='';
puts(a);
}

❸ c語言怎麼合並兩個數組

int main() {
char a[] = "123456";
char b[] = "abcde";
int buflen = strlen(a) + strlen(b);
char *p = (char*)malloc(buflen + 1);
memset(p, 0, buflen);
printf("%d\n", buflen);
strcpy(p, a);
strcat(p, b);
printf("%s\n", p);
free(p);
}
C的數組在創建後不可變得,因此數組合並的思想就是把數組塞到一個足夠大的空間里形成新數組。
上面的函數是比較簡單的合並方法

❹ C語言頭文件有哪些

字元處理函數
本類別函數用於對單個字元進行處理,包括字元的類別測試和字元的大小寫轉換

頭文件 ctype.h

函數列表<>
函數類別 函數用途 詳細說明
字元測試 是否字母和數字 isalnum
是否字母 isalpha
是否控制字元 iscntrl
是否數字 isdigit
是否可顯示字元(除空格外) isgraph
是否可顯示字元(包括空格) isprint
是否既不是空格,又不是字母和數字的可顯示字元 ispunct
是否空格 isspace
是否大寫字母 isupper
是否16進制數字(0-9,A-F)字元 isxdigit
字元大小寫轉換函數 轉換為大寫字母 toupper
轉換為小寫字母 tolower

地區化
本類別的函數用於處理不同國家的語言差異。

頭文件 local.h

函數列表
函數類別 函數用途 詳細說明
地區控制 地區設置 setlocale
數字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv

數學函數
本分類給出了各種數學計算函數,必須提醒的是ANSI C標准中的數據格式並不符合IEEE754標准,一些C語言編譯器卻遵循IEEE754(例如frinklin C51)

頭文件 math.h

函數列表
函數類別 函數用途 詳細說明
錯誤條件處理 定義域錯誤(函數的輸入參數值不在規定的范圍內)
值域錯誤(函數的返回值不在規定的范圍內)
三角函數 反餘弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
餘弦 cos
正弦 sin
正切 tan
雙曲函數 雙曲餘弦 cosh
雙曲正弦 sinh
雙曲正切 tanh
指數和對數 指數函數 exp
指數分解函數 frexp
乘積指數函數 fdexp
自然對數 log
以10為底的對數 log10
浮點數分解函數 modf
冪函數 冪函數 pow
平方根函數 sqrt
整數截斷,絕對值和求余數函數 求下限接近整數 ceil
絕對值 fabs
求上限接近整數 floor
求余數 fmod

本分類函數用於實現在不同底函數之間直接跳轉代碼。 頭文件 setjmp.h io.h

函數列表
函數類別 函數用途 詳細說明
保存調用環境 setjmp
恢復調用環境 longjmp

信號處理
該分類函數用於處理那些在程序執行過程中發生例外的情況。

頭文件 signal.h

函數列表
函數類別 函數用途 詳細說明
指定信號處理函數 signal
發送信號 raise

可變參數處理
本類函數用於實現諸如printf,scanf等參數數量可變底函數。

頭文件 stdarg.h

函數列表
函數類別 函數用途 詳細說明
可變參數訪問宏 可變參數開始宏 va_start
可變參數結束宏 va_end
可變參數訪問宏 訪問下一個可變參數宏 va_arg

輸入輸出函數
該分類用於處理包括文件、控制台等各種輸入輸出設備,各種函數以「流」的方式實現

頭文件 stdio.h

函數列表
函數類別 函數用途 詳細說明
文件操作
刪除文件 remove
修改文件名稱 rename
生成臨時文件名稱 tmpfile
得到臨時文件路徑 tmpnam
文件訪問 關閉文件 fclose
刷新緩沖區 fflush
打開文件 fopen
將已存在的流指針和新文件連接 freopen
設置磁碟緩沖區 setbuf
設置磁碟緩沖區 setvbuf
格式化輸入與輸出函數 格式輸出 fprintf
格式輸入 fscanf
格式輸出(控制台) printf
格式輸入(控制台) scanf
格式輸出到緩沖區 sprintf
從緩沖區中按格式輸入 sscanf
格式化輸出 vfprintf
格式化輸出 vprintf
格式化輸出 vsprintf
字元輸入輸出函數 輸入一個字元 fgetc
字元串輸入 fgets
字元輸出 fputc
字元串輸出 fputs
字元輸入(控制台) getc
字元輸入(控制台) getchar
字元串輸入(控制台) gets
字元輸出(控制台) putc
字元輸出(控制台) putchar
字元串輸出(控制台) puts
字元輸出到流的頭部 ungetc
直接輸入輸出 直接流讀操作 fread
直接流寫操作 fwrite
文件定位函數 得到文件位置 fgetpos
文件位置移動 fseek
文件位置設置 fsetpos
得到文件位置 ftell
文件位置復零位 remind
錯誤處理函數 錯誤清除 clearerr
文件結尾判斷 feof
文件錯誤檢測 ferror
得到錯誤提示字元串 perror

實用工具函數
本分類給出了一些函數無法按以上分類,但又是編程所必須要的。

頭文件 stdlib.h

函數列表
函數類別 函數用途 詳細說明
字元串轉換函數 字元串轉換為整數 atoi
字元串轉換為長整數 atol
字元串轉換為浮點數 strtod
字元串轉換為長整數 strtol
字元串轉換為無符號長整型 strtoul
偽隨機序列產生函數 產生隨機數 rand
設置隨機函數的起動數值 srand
存儲管理函數 分配存儲器 calloc
釋放存儲器 free
存儲器分配 malloc
重新分配存儲器 realloc
環境通信 中止程序 abort
退出程序執行,並清除環境變數 atexit
退出程序執行 exit
讀取環境參數 getenv
程序掛起,臨時執行一個其他程序 system
搜索和排序工具 二分查找(數據必須已排序) bsearch
快速排序 qsort
整數運算函數 求絕對值 abs
div
得到除法運算底商和余數
求長整形底絕對值 labs
求長整形除法的商和余數 ldiv
多位元組字元函數 得到多位元組字元的位元組數 mblen
得到多位元組字元的位元組數 mbtowc
多位元組字元轉換 wctomb
多位元組字元的字元串操作 將多位元組串轉換為整數數組 mbstowcs
將多位元組串轉換為字元數組 mcstowbs

字元串處理
本分類的函數用於對字元串進行合並、比較等操作

頭文件 string.h

函數列表
函數類別 函數用途 詳細說明
字元串拷貝 塊拷貝(目的和源存儲區不可重疊) memcpy
塊拷貝(目的和源存儲區可重疊) memmove
串拷貝 strcpy
按長度的串拷貝 strncpy
字元串連接函數 串連接 strcat
按長度連接字元串 strncat
串比較函數 塊比較 memcmp
字元串比較 strcmp
字元串比較(用於非英文字元) strcoll
按長度對字元串比較 strncmp
字元串轉換 strxfrm
字元與字元串查找 字元查找 memchr
字元查找 strchr
字元串查找 strcspn
字元串查找 strpbrk
字元串查找 strspn
字元串查找 strstr
字元串分解 strtok
雜類函數 字元串設置 memset
錯誤字元串映射 strerror
求字元串長度 strlen

日期和時間函數
本類別給出時間和日期處理函數

頭文件 time.h

函數列表
函數類別 函數用途 詳細說明
時間操作函數 得到處理器時間 clock
得到時間差 difftime
設置時間 mktime
得到時間 time
時間轉換函數 得到以ASCII碼表示的時間 asctime
得到字元串表示的時間 ctime
得到指定格式的時間 strftime

函數庫未來的發展方向
本部分用於說明各類別函數庫在將來如何發展。

序號 庫類別 頭文件 詳細說明
1 錯誤處理 errno.h
2 字元處理 ctype.h
3 地區化 local.h
4 數學函數 math.h
5 信號處理 signal.h
6 輸入輸出 stdio.h
7 實用工具程序 stdlib.h
8 字元串處理 string.h

❺ C語言數組單位的合並問題

直接將數組的指針強制轉換為占兩個位元組的short類型即可。
short* (Data[0][0]) 可以把地址變為兩個位元組的地址,數據也會是兩個位元組合並後的數據內容。

❻ 請問如何使用C語言把兩個數組合並在一個數組里

代碼文本:

#include "stdio.h"

int input(int *p,int n){

char i,ch;

for(i=0;i<n;i++){

if((ch=getchar())==' ')

break;

else if(ch>='0' && ch<='9')

ungetc(ch,stdin);

scanf("%d",p+i);

}

return i;

}

int main(int argc,char *argv[]){

int a[21],b[10],i,j,k;

printf("Input array a... ");

i=input(a,10);

printf("and input array b... ");

j=input(b,10);

for(k=0;k<j;a[i++]=b[k++]);

for(j=0;j<i;printf("%d ",a[j++]));

putchar(' ');

return 0;

}

❼ 怎樣在C語言中實現兩個數組的合並

把兩個數組分別合到一個數組裡面啊.
那個數組的長度為 兩個數組的長度的和

❽ C語言如何把三個數組合成一個數組 如a[]={1,2,3}b[]={4,5,6}c[]={7,8,9} 結:d[]={1,2,3,4,5,6,7,8,9,}

設置一個字元串buffer,把三個數組分別循環一遍,放進buffer,用逗號隔開,然後再轉化成一個數組!

❾ c語言 如何讓幾個數組合並為一個數組

用指針

例如:參考代碼
#include "stdio.h"
#include "stdlib.h"
void paixue1(int str1[])/*用冒泡法對輸入的數組1進行排序*/
{
int i,j,temp;
for(i=1;i<5;i++)
for(j=0;j<4;j++)
{
if(str1[j]>str1[j+1])
{
temp=str1[j];
str1[j]=str1[j+1];
str1[j+1]=temp;
}
}
}
void paixue2(int str2[])/*用冒泡法對輸入的數組2進行排序*/
{
int i,j,temp;
for(i=1;i<5;i++)
for(j=0;j<4;j++)
{
if(str2[j]>str2[j+1])
{
temp=str2[j];
str2[j]=str2[j+1];
str2[j+1]=temp;
}
}
}
void connect(int str1[],int str2[])/*對排好序的數組進行整合*/
{
int i,j,k;
int *str3;
str3=(int *) malloc(100);
i=0;
j=0;
k=0;
while(i<5&&j<5)/*將小的元素先放入數組*/
{
if(str1[i]>=str2[j])
{
str3[k++]=str2[j];
j++;/*那個放入數組了,那個加加*/
}
else if(str1[i]<=str2[j])
{
str3[k++]=str1[i];
i++;
}
}
if(i<5)/*有沒有被放入的元素,放入數組*/
{
for(;i<5;i++)
str3[k++]=str1[i];
}
else if(j<5)*有沒有被放入的元素,放入數組*/
{
for(;j<5;j++)
str3[k++]=str2[j];
}

for(i=0;i<10;i++)
printf("%d ",str3[i]);
printf(" ");
free(str3);

}
void main()
{
int *str1,*str2,length=0,i;
str1=(int *)malloc(100);
str2=(int *)malloc(100);
printf("please input the first number ");
for(i=0;i<5;i++)
scanf("%d",&str1[i]);
printf("please input the second number ");
for(i=0;i<5;i++)
scanf("%d",&str2[i]);
for(i=0;i<5;i++)
printf(" %d",str1[i]);
printf(" ");
for(i=0;i<5;i++)
printf(" %d",str2[i]);
printf(" ");
paixue1(str1);
paixue2(str2);
for(i=0;i<5;i++)
printf(" %d",str1[i]);
printf(" ");
for(i=0;i<5;i++)
printf(" %d",str2[i]);
printf(" ");
connect(str1,str2);
free(str1);
free(str2);
}

補充:C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。

❿ C語言中數組的合並

//兩個數組合並,參考代碼:
#include "stdio.h"
int d=0; //用於記錄數組c的大小,和數組c的輸出類的一些操作
void main()
{
int a[50],b[50],c[100];
int i,j,k; //i表示a數組的大小 j表示b數組的大小 k用於數組的輸出
printf("數組a的輸入,輸入一個數,表明你要輸入多少個數到數組a中\n");
scanf("%d",&i);
for(k=0;k<i;k++)
scanf("%d",&a[k]);
printf("數組b的輸入,輸入一個數,表明你要輸入多少個數到數組b中\n");
scanf("%d",&j);
for(k=0;k<j;k++)
scanf("%d",&b[k]);
void px(int *p,int n); //聲明 排序 冒泡法
px(a,i); //調用
px(b,j); //調用
void prin(int *p,int n); //聲明 數組的輸出函數
prin(a,i);
prin(b,j);
void hb(int *o,int *p,int *q,int m,int n); //聲明 兩個數組的合並函數 前提:這倆個數組必須是排好序的
hb(c,a,b,i,j);
prin(c,d);
}

void px(int *p,int n) //自定義函數 排序 冒泡法
{int i,j,t,leap;
for(i=0;i<n-1;i++) //外層循環n-1次,一次循環沉澱一個數
{
leap=0; //leap作為標記,是否兩數相換
for(j=0;j<n-i-1;j++) //內循環n-i-1次
{
if(p[j]>p[j+1]) //比較兩個數
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t; //來兩個數交換
leap=1; //交換了,標記leap=1
}
}
if(leap==0) break; //經歷了一個內for循環,leap==0的話,表明排序成功了,不需要接下來在排序了。
}
}

void prin(int *p,int n) //自定義函數 數組輸出函數
{
int k,sum=0;
for(k=0;k<n;k++)
{
printf("%d ",p[k]);
sum++;
if(sum%10==0) printf("\n");
}
printf("\n");
}

void hb(int *o,int *p,int *q,int m,int n) //m為p指向數組的大小 n為q指向數組的大小 指針o指向合並的數組
{
int i=0,j=0,k; //i為p指向數組的大小 j為q指向數組的大小
while(1)
{
if(p[i]<q[j])
{
o[d]=p[i];
i++;
d++;
}
else
{
o[d]=q[j];
j++;
d++;
}
if(i==m||j==n) break;
}
if(i==m)
{
for(k=j;k<n;k++)
{
o[d]=q[k];
d++;
}
}
if(j==n)
{
for(k=i;k<m;k++)
{
o[d]=p[k];
d++;
}
}
}