编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语言怎么写程序啊求详细解释~急!
void fun (char s1[],char s2[]){
int i,j;
for (i=0;s1[i] !=’\0’; i++); /*求出的i为pA字符的总长度,包括结束标记位*/
for (j=0;s2[j] !=’\0’; j++)
s1[i++]=s2[j]; /*将pB字符串连在pA字符串的后面*/
s1[i]='\0’; /*在字符串最后加上结束标记符*/
}
扩展资料:
最常用的字符串函数:
字符串输出函数puts格式:puts (字符数组名) 功能:把字符数组中的字符串输出到显示器。
2.字符串输入函数gets格式:gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。本函数得到一个函数值,即为该字符数组的首地址。
3.字符串连接函数strcat格式:strcat (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“”。
4.字符串拷贝函数strcpy格式:strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。
5.字符串比较函数strcmp格式:strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
6.测字符串长度函数strlen格式:strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志‘’) 并作为函数返回值。
参考资料:
#include"stdio.h"
#include"conio.h"
#include"math.h"
main()
{char c,str1[100],str2[100],str3[300];
int i,j;
printf("Please input the first string\nConfirm by Enter\n");
gets(str1);
printf("Please input the second string\nConfirm by Enter\n");
gets(str2);
for(i=0;(c=str1<i>)!='\0';i++)
{str3<i>=str1<i>;
};
j=i;
for(i=0;(c=str1[i])!='\0';i++)
for(i=0;(c=str2<i>)!='\0';i++,j++)
{str3[j]=str2<i>;
};
printf("The string which has been connected is:\n%s",str3);
getch();
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。
参考资料:
void main()
{
char s1[20],s2[10];
int i=0,j=0;
gets (s1),gets (s2);
while (s1[i] !='\0')
{
i++;
}
while (s2[j] != '\0')
{s1[i++]=s2[j++];}
puts (s1);
}
char * strcat(char * dest, const char * src)
{
char *tmp = dest;
while (*dest)
dest++;
while ((*dest++ = *src++) != '\0')
;
return tmp;
}
参考一下吧。