编一程序,将两个字符串连接起来,不要用strcat函数
方法和详细的操作步骤如下:
1、第一步,打开pycharm编辑器,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,在文件中写一个注释,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,创建第一个字符串str1
=“ my name”,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,创建第二个字符串str2
=“ is feng”,见下图,转到下面的步骤。
5、第五步,执行完上面的操作之后,将两个字符串拼接在一起以形成新的字符串str3
= str1 + str2,见下图,转到下面的步骤。
6、第六步,执行完上面的操作之后,打印出连接的字符串,见下图,转到下面的步骤。
7、第七步,执行完上面的操作之后,运行该程序并获得结果,见下图。这样,就解决了这个问题了。
函数的引数void *mystrcat(char* s1, char* s2)
第一个引数输入在函数外部 char *a="asdfasdf" 声明 编译通过但是运行会出现错误 (*a 指向的内容被视为是常量,不可改变)
或者 char a[]="ab",也会出错,(长度超限,运行时错误)
除非char a[100]="ab",2个字符串长度不超过100才会通过。
最好状态知道2个字符串长度,建立一个新字符串把2个字符串复制进去 如果不知道长度的情况,就应该用连表
最简单的状态,2个知道长度的字符串。
int main()
{
char *a="qwet",*b="woei";//2个4长度的字符串
char c[20]; //一个长度大于2字符串长度的的字符数组
int i,j;
for( i=0,j=0;*(a+i);i++ ,j++)//第一个字符串复制,到遇到结束标志停止
c[j]=*(a+i);
for(i=0 ; *(b+i);i++,j++ )//第二个字符串复制,到遇到结束标志停止
c[j]=*(b+i);
c[j]='\0'; //给字符数组加入结束标志
for( i=0 ; c[i] ;i++ )
printf("%c ",c[i]);
}
下面是把字符串a和字符串b,放到x里,就连好了.
#include <stdio.h>
#include <stdlib.h>
main()
{
char a[]="abcd fgh -- "; // 有字符"空白"号也不怕
char b[]="12345 7890";
char x[80];
sprintf(&x[0],"%s%s\0",a,b); // 把ab连起来
printf("%s",x); // 打出结果来看看
}
先看运行截图:
上代码:
#include <stdio.h>
#include <string.h>
main(){
int i=0,j=0;
char a[100],b[10];
gets(a); //用来接收字符串
gets(b);
printf("a = %s\tb = %s\n",a,b);
while(a[i++] != '\0'); //找到a最后的一位
--i;
while((a[i++] = b[j++]) != '\0'); //将a和b连接起来 代码核心
i =0;
printf("a = ");
while(a[i] != '\0') printf("%c",a[i++]); //输出a的值
return 0;
}
int main()
{
int i,j;
char str1[80]={"China"};
char str2[80]={" is a Country"};
for(i=0;str1[i]!='\0';i++)//计算长度
;
for(j=0;str2[j]!='\0';j++,i++)
{
str1[i]=str2[j];
}
//str1[i]='\0';
printf("合成后:%s",str1);
putchar('\n');
return 0;
}