c语言用函数连接两个数组 c语言怎么用两个函数

c语言中,用了strcmp函数连接两个字符串数组a.b后 , 还需要手动加个'\0'吗不用了
strcat把原字符串添加到目的字符串结尾处(覆盖dest结尾处的'\0')并添加'\0' 。
C语言怎么连接两个一维数组?先printf输出一个数组的值,不要换行 , 加上空格后 , 再输出另一个 。
c语言怎么将两个正整数连接有二个方法可以实现:
方法一:直接用strcat函数 ;
方法二:编程实现strcat的功能 ;
参考代码如下:
void main()
{ char s1[80],s2[80];
int i=0,j=0;
puts("input two strings:");
gets(s1);
gets(s2);
while(s1[i]!='\0') i++;
while(s2[j])!='\0')
s1[i++]=s2[j++];*/此处本人修改*/
printf("result:%s\n",s1);
}
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语言怎么用strcat将两个数组a[i]、b[j]合并成一个数组?strcat是字符串拼接函数c语言用函数连接两个数组,不是数组拼接函数c语言用函数连接两个数组,所以不能用于拼接两个数组 。
可以用以下方法c语言用函数连接两个数组:
用数组的话用memcpy 。
用循环把所有数组元素重新拷贝 。
直接当字符串输入 。
C语言之指针:连接两个字符数组程序最最主要的问题在于:你在connect函数中,返回了一个局部变量的地址,即局部变量c 。
当你返回这个指针(即局部变量c),你是想返回c这个数组的首地址是吧 , 确实是这样 , 返回了这个地址值 。但是,千万要注意,当你回到主函数时,事实上那个数组早已经不存在了,已经销毁了 , 也就是说里面的数据已经不是那个connect函数中我们希望的数据了 。在主函数中printf("%s",connect(a,b)); 当然不会得到想要的结果了 。不知道你明白了没有*_*
我改进了一下 , 仅供参考
#include "stdio.h"
//增加了一个参数,即s , 用于存放连接后的数组元素
char *connect(char *pa, char *pb, char *s)
{
char *pc = s;
【c语言用函数连接两个数组 c语言怎么用两个函数】int i=0,j=0;
while(*(pa+i)!='\0')
{
*(pc+i)=*(pa+i);
i++;
}
while(*(pb+j)!='\0')
{
*(pc+i)=*(pb+j);
i++;
j++;
}
return s;
}
int main()
{
char a[10],b[10];
char c[20];//这个数组不放在connect函数中 , 而是在这里出现,目的是为下面的调用提供接口
scanf("%s",a);
scanf("%s",b);
printf("%s\n", connect(a, b, c));
return 0;
}
你试试吧,可以正确执行*_*
嘿嘿,对于这个程序呢,connect函数是有可以改进之处的,我又做了一点改进,你要是愿意,可以看一下 。
#include "stdio.h"
#include "string.h"
//这个connect函数是不是简单了许多呢*_*
char *connect(char *pa, char *pb, char *s)
{
int n = strlen (pa);
strcpy (s, pa);
strcpy (s+n, pb);
return s;
}
int main()
{
char a[10],b[10];
char c[20];
scanf("%s",a);
scanf("%s",b);
printf("%s\n", connect(a, b, c));
return 0;
}
c语言用函数连接两个数组的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言怎么用两个函数、c语言用函数连接两个数组的信息别忘了在本站进行查找喔 。

推荐阅读