编写一个程序,将两个字符串连接起来,并输出(不要使用strcat函数)。用C语言求解详细过程。

如题所述

#include<stdio.h>

void main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\ninput stringl:");

scanf("%s",s1);

printf("input string2:");

scanf("%s",s2);

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

i++;

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

s1[i++]=s2[j++];

s1[i]='\0';

printf("The new string is:%s\n",s1);

}

扩展资料:

main函数用法

1、C++中的main函数

C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,

不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。

C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。

2、Java中的main函数

Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。

首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。

其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。

第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。

第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)

Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)

public class MainDemo{

public static void main(String[]args){

//TODO:在此处写入主函数的内容

}

}

Java Applet的运行机制与Java Application完全不同,因此不需要main函数

3、C#中的main函数

C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,

与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)

另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。

C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)

C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。

class Program{

static void Main(string[]args){

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-21

找到第一个字符串最后的'\0',然后把第二个字符串从头开始一个字符一个字符地拷贝到第一个字符串后面,并把最后的'\0'也拷过去。应用举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
    char a[100]="1234567890",b[30]="abcdefghijklmnop";
    int i=0,j=0;
    while(a[i]) i++;//找到字符串a的'\0',位置记录在i
    while(a[i++]=b[j++]);//从0开始把b按字符依次向a中i位置拷贝,拷完'\0'结束
    printf("%s\n",a);
    return 0;
}

本回答被网友采纳

...并输出(不要使用strcat函数)。用C语言求解详细过程。
s1[i]='\\0';printf("The new string is:%s\\n",s1);}

...并输出(不要使用strcat函数)。用C语言求解详细过程。
s1[i]='\\0';printf("The new string is:%s\\n",s1);}

...连接(不使用库函数strcat).这个用C语言怎么写程序啊求详细解释~急...
s1[i++]=s2[j]; \/*将pB字符串连在pA字符串的后面*\/ s1[i]='\\0’; \/*在字符串最后加上结束标记符*\/ }

用c语言编写程序,将两个字符串连接起来,不要用strcat函数
s2); \/\/请在后面补充strc函数的功能,完成两个字符串的连接puts(s1);}void strc(char c1[],char c2[]){ \/\/请填空,完成两个字符串的连接 int i,j;

c语言! 编一程序,将两个字符串连接起来,不要用strcat函数.
参考代码:拼接123和456 include<stdio.h>void mystrcat(char a[],char b[]){\/\/字符串连接函数 int i=0,j=0;while(a[i++]!='\\0');\/\/找到a的结束位置 i--;while(b[j]!='\\0'){\/\/把b元素赋值到a中 a[i++]=b[j++];} a[i]='\\0';\/\/加上结束标志 }int main(){char ...

C语言:编一程序,将两个字符串连接起来。 要求:不允许使用strcat函数
include<stdio.h>#include<stdlib.h>\/*程序入口点函数*\/int main(){ int i,j; char str1[100],str2[100],str3[201]; gets(str1); gets(str2); for(i=0;str1[i]!='\\0';i++) str3[i]=str1[i]; for(j=0;str2[j]!='\\0';j++) str3[j+i]...

c语言:编写程序将两个字符连接起来,不使用strcat函数。
to continue include<stdio.h> void main(void){ char ch1[20],ch2[10];int i=0,k=0;gets(ch1);gets(ch2);while(ch1[i]!='\\0')i++;while(ch2[k]!='\\0') \/\/这里是k不是i ch1[i++]=ch2[k++];ch1[i]='\\0'; \/\/完毕加结束符 printf("%s",ch1);} ...

[C语言] 不用strcat()函数,将两个字符串连接起来,试完善一下程序!
include<stdio.h> int main(){ char s1[80],s2[40];int i,j;printf("Enter s1:");scanf("%s",s1);printf("Enter s2:");scanf("%s",s2);for(i=0;s1[i];i++);for(j=0;s1[i++]=s2[j++];);printf("\\nResult is:%s",s1);getch();return 0;} ...

[C语言] 不用strcat()函数,将两个字符串连接起来,试完善一下程序!!!
int main(){ char s1[80],s2[40];int i=0,j=0;printf("Enter s1:");\/\/改成用gets函数 \/\/因为如果输入的字符串中间或末尾包含空格 \/\/用scanf函数会造成输入不正确 gets(s1);printf("Enter s2:");gets(s2);while('\\0'!=s1[i]){ i++;} while(1){ s1[i]=s2[j];if('\\0'=...

编一个程序,将两个字符串连接起来,不要用STRCAT函数。
public static char* CombineString(char* source1, int length1; char* source2, int length2){ char* result=0;result=(char*)malloc(sizeof(length1+length2-1);if(result==0){ return null;} int position=0;int i=0;while(position<length1){ result[position++]=source1[position++]...

相似回答