strcat(char a[],const char b[]);改为strcat( a, b);
完整程序:
#include
#include
main()
{
char a[100],b[100];
scanf("%s%s",a,b);
strcat(a,b);
printf("%s",a);
}
6.编写C连接两个字符串的函数你的 char strc(char *pa,char *pb) 函数里的 pa++ 和 pb++ 都只是把指针+1,字符串内容没有任何改变 。而 return *pa 返回的是 pa 的第一个字符,而把一个字符 (char) 用 %s 的方式输出,自然也不能得到正确的结果 。
思路1:
把字符串 a 的长度加倍为200,然后把整个 b 字符串的内容全部复制到 a 字符串的末尾 。
char a[200],b[100];
int i, j;
printf("请输入一行字符,在100个字以内\n");
gets(a);
printf("请再输入一行字符,在100个字以内\n");
gets(b);
// 查找 a 字符串的结尾
i = 0;
while(a[i] != 0)
{
i++;
}
// 把 b 字符串复制到 a 字符串末尾
j = 0;
while(b[j] != 0)
{
a[i] = b[j];
i++;
j++;
}
printf("两行字符合并后的结果:\n");
printf("%s\n", a);
思路2:
定义一个字符串 c,先把 a 字符串的内容复制到 c 中,然后再把 b 字符串的内容追加上去 。
算法与思路1大同小异,就不详细写出来了 。
7.C语言编写函数:字符串的连接#include <stdio.h>
#include <malloc.h>
char *str_cat(const char *str1, const char *str2);
int main(){
char *str1 = "abc";
char *str2 = "def";
char *cat = str_cat(str1, str2);
printf("[%s] + [%s] = [%s]\n", str1, str2, cat);
free(cat); //释放内存
return 0;
}
char *str_cat(const char *str1, const char *str2){
int len1 = 0;
int len2 = 0;
for (len1 = 0; *(str1+len1) != '\0'; len1++){} //获取str1长度
for (len2 = 0; *(str2+len2) != '\0'; len2++){} //获取str2长度
char *ret = (char *)malloc(sizeof(char)*(len1+len2+1)); //申请动态空间
/*内存赋值*/
int i;
for (i=0; i<len1; i++){
*(ret+i) = *(str1+i);
}
for (i=0; i<len2; i++){
*(ret+len1+i) = *(str2+i);
}
*(ret+len1+len2) = '\0';
return ret;
}
8.C语言中字符串如何连接#include <string.h>
第一种方法
char buf[128]="xyz";
strcat(buf, "abc");
第二种方法
strcpy(buf + 3, "abc");
第三种方法
memcpy(buf+3, "abc", 4);
前提是要先懂什么是字符串,如果不懂的话,那太容易出错了 。优酷上找" C学习指南”的第5.2讲,打打基础 。
9.c语言连接字符串S楼主定义的数组a只有3个元素,最后连接的时候把a和b的一起往里面放,当然会出现内在错误.再有scanf("%c",&a[i]);和scanf("%c",&b[i]);用这两个语句读取字符串很可能会出错的 可以在%和c之间加一个空格来解决,具体原因楼主可以查看一下scanf的原码 借用别人的一段代码:#include #include void lianjie(char *p1,char *p2);/*字符串连接函数,连接后保存在p1中*/int longth(char *p);/*判读字符串长度*/int main(){ char strfrom[50]="i am a good student"; char strto[20]=" i love c"; lianjie(strfrom,strto); printf("%s",strfrom); return 0;}void lianjie(char *p1,char *p2){ int i=0;int j=0;int k; i=longth(p1); j=longth(p2); k=i+j; for(j=0;i
文章插图
- ddmmyy日期怎么写
- 足球赛笔记怎么写
- 2月27日大写怎么写
- 联通年终总结怎么写
- 拉丁文37怎么写
- 怎么帮宝宝写周末见闻
- 12月10日英文怎么写
- sci论文引用怎么写
- hear中文怎么写
- 资料一da怎么写