重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了浙江免费建站欢迎大家使用!
#include string.h
void main()
{
char a[20]="hello";//注意第一个数组要够大,能容下两串总和。
char b[10] = "world";
strcat(a,b); //字符串连接函数
printf("%s\n",a);
}
在C语言当中,对于数组复制要分两种。
1)字符数组。
字符数组相当于字符串,可以用标准函数strcpy()和strncpy()直接进行字符串复制。
2)其他数组。
由于C语言的原始性,它并不具备操作符重载。所以对于数组复制,都需要对数组进行遍历,然后每个元素每个元素的一一复制。根据数组的大小和维数,可选择不同的循环或者递归进行复制。
for(count=0;count++;countsize)
for循环后面的括号,第二个条件语句是判断。
你现在这样for的循环体一次都不能执行,因为count的初始值为0,一进入判断就退出了。
gcc 编译测试通过
#include stdlib.h
#include stdio.h
#define N 10
int * copyArray(int *source, int n)
{
int *dest;
int i;
// 分配空间
dest = (int*)malloc(n * sizeof(int));
// 顺序复制
for(i = 0;i n;i ++)
dest[i] = source[i];
return dest;
}
int *copyReverse(int *source, int n)
{
int *dest;
int i;
// 分配空间
dest = (int*)malloc(n * sizeof(int));
// 逆序复制
for(i = 0;i n;i ++)
dest[n - i - 1] = source[i];
return dest;
}
int *copyOrder(int *source, int n)
{
int *dest;
int i,j,minIndex;
// 分配空间
dest = (int*)malloc(n * sizeof(int));
// 顺序复制
for(i = 0;i n;i ++)
dest[i] = source[i];
// 对数组选择排序
for(i = 0;i n - 1;i ++)
{
minIndex = i;
for(j = i;j n;j ++)
{
// 选择本次最小下标(如果需要降序,将 改为 ,重新编译)
if(dest[j] dest[minIndex])
minIndex = j;
// 交换元素
if(minIndex != i)
{
dest[i] = dest[i] ^ dest[minIndex];
dest[minIndex] = dest[i] ^ dest[minIndex];
dest[i] = dest[i] ^ dest[minIndex];
}
}
}
return dest;
}
int main()
{
int test[N] = {2,4,1,0,9,5,6,8,7,3};
int *origin,*reverse,*order;
int i;
origin = copyArray(test,N);
reverse = copyReverse(test,N);
order = copyOrder(test,N);
for(i = 0; i N; i ++)
printf("%d ",origin[i]);
printf("\n");
for(i = 0; i N; i ++)
printf("%d ",reverse[i]);
printf("\n");
for(i = 0; i N; i ++)
printf("%d ",order[i]);
printf("\n");
free(origin);
free(reverse);
free(order);
return 0;
}
strcpy(t[i],a[j],n);该语句的意思是:将某已知二维数组a的第j行前n个字符复制到另一个二维数组t的第i行中。给分吧