将两个字符串连接起来 不要用strcat函数运行结果

#include<stdio.h>
void main( )
{
char s1[50],s2[20];
int i,j;
printf("请输入第一串字符:\n");
scanf("%s",s1);
printf("请输入第二串字符:\n");
scanf("%s",s2);
i=j=0;
while(s1[i]!='\0')
{
i++;
}
while(s2[j]!='\0')
{
s1[i]=s2[j];
i++;
j++;
}
printf("组合后的字符串:%s\n",s1);
}

1、首先打开pycharm编辑器。

2、在文件里面写上注释。

3、新建第一个字符串str1="my name"。

4、新建第二个字符串str2="is feng"

5、将这两个字符串拼接起来组成新的字符串str3=str1+str2。

6、将拼接的字符串打印出来。

7、运行这个程序,得出结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-12

#include<stdio.h>

void main( )

{

char s1[50],s2[20];

int i,j;

printf("请输入第一串字符:\n");

scanf("%s",s1);

printf("请输入第二串字符:\n");

scanf("%s",s2);

i=j=0;

while(s1[i]!='\0')

{

i++;

}

while(s2[j]!='\0')

{

s1[i]=s2[j];

i++;

j++;

}

s1[i]='\0';

printf("组合后的字符串:\n%s\n",s1);

}

本回答被提问者采纳
第2个回答  2016-04-15
上边那位同志的操作有些危险,还有错误。
函数的引数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]);
}
第3个回答  2006-05-14
将两个字符串连接起来,不用strcat函数,可用sprintf呀.
下面是把字符串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); // 打出结果来看看
}
第4个回答  2006-05-13
void *mystrcat(char* s1, char* s2)
{
if (s1==NULL||s2==NULL) return; //错误判断
while(*s1++);
s1--;
while(*s1++ = *s2++); //是一个=(赋值),不是==(比较)
}
以上程序将s2串在s1后面
相似回答