C函数篇(strcat函数)

原型

extern char *strcat(char *dest,char *src)

用法

#include <string.h>

在C++中,则存在于<cstring>头文件中。

功能

把src所指字符串添加到dest结尾处(覆盖dest结尾处的‘\0‘)并添加‘\0‘。

说明

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针

举例

//strcat.c

#include<syslib.h>

#include<string.h>

main()

{

char d[20]="GoldenGlobal";

char*s="View";

clrscr();

strcat(d,s);

printf("%s",d);

getchar();

return0;

}

//strcat.cpp

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

main()

{

chard[20]="GoldenGlobal";

char*s="View";

system("cls");

strcat(d,s);

printf("%s",d);

getchar();

return0;

}

程序执行结果为:

Golden Global View

Strcat函数原型如下

//将源字符串加const,表明其为输入参数

char*strcat(char*strDest,constchar*strSrc)

{

//后文returnaddress,故不能放在assert断言之后声明address

char*address=strDest;

assert((strDest!=NULL)&&(strSrc!=NULL));//对源地址和目的地址加非0断言

while(*strDest)//是while(*strDest!=’\0’)的简化形式

{

//若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,

//那么strDest将指向‘\0‘的下一个位置。/所以要在循环体内++;因为要是*strDest最后指

//向该字符串的结束标志’\0’。

strDest++;

}

while(*strDest++=*strSrc++)

{

NULL;//该循环条件内可以用++,

}//此处可以加语句*strDest=’\0’;无必要

returnaddress;//为了实现链式操作,将目的地址返回

}

时间: 2024-10-05 18:13:55

C函数篇(strcat函数)的相关文章

函数篇之——函数也是数据

1.  对于JavaScript 来说,有一个概念十分重要——既函数是一种数据类型. 也就是说,下面两种函数定义在本质上是相同的: ① . function f () { return 1; } ② . var f = function () { return 1; } 其中,第二种定义方式通常被叫做函数标识记法(function literal notation). 如果我们对函数变量调用typeof,操作符返回的字符串将会是“function”. >>> var f = functi

C函数篇(Timer函数)

语法 Timer() 语法Timer ( interval {, windowname } ) 参数 指定两次触发Timer事件之间的时间间隔,有效值在0到65之间.如果该参数的值指定为0,那么关闭定时器, 不再触发指定窗口的Timer事件.windowname:窗口名,指定时间间隔到时要触发哪个窗口的Timer事件.省略该参数时,触发当前窗口的 Timer事件返回值Integer.函数执行成功时返回1,发生错误时返回-1.如果任何参数的值为NULL,Timer()函数返回NULL.用法使 用T

C函数篇(setsockopt函数②)

套接口选项 在前面的几章中,我们讨论了使用套接口的基础内容.现在我们要来探讨一些可用的其他的特征.在我们掌握了这一章的概念之后,我们就为后面的套接口的高级主题做好了准备.在这一章,我们将会专注于下列主题: 如何使用getsockopt(2)函数获得套接口选项值 如何使用setsockopt(2)函数设置套接口选项值 如何使用这些常用的套接口选项 得到套接口选项 有时,一个程序需要确定为当前为一个套接口进行哪些选项设置.这对于一个子程序库函数尤其如此,因为这个库函数并不知道为这个套接口进行哪些设置

SQl Server 函数篇 数学函数,字符串函数,转换函数,时间日期函数

数据库中的函数和c#中的函数很相似 按顺序来, 这里价格特别的 print  可以再消息栏里打印东西 数学函数 ceiling()  取上限   不在乎小数点后面有多大,直接忽略 floor()     取下限   同上 round(列名,保留的位数)   四舍五入   保留小数最后那位数进不进一只看保留位数的后一位数够不够条件,再往后的就不管了 ABS()     绝对值---防抱死233 PI()        圆周率   就是查询一个圆周率 SQRT()平方根 字符串函数 upper()

C函数篇(wait函数)

#include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经 退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回:如果没有找到这样一个子进程,wait就 会一直阻塞在这里,直到有一个出现为止. 参数status用来保存被收集进程退出时的一些状态,它是一个指向int类型

C函数篇(socket函数)

简述 创建一个套接口. #include <winsock.h> SOCKET PASCAL FAR socket( int af, int type, int protocol); af:一个地址描述.目前仅支持AF_INET格式,也就是说ARPA Internet地址格式. type:新套接口的类型描述. protocol:套接口所用的协议.如调用者不想指定,可用0指定,表示缺省. 注释       socket()函数用于根据指定的地址族.数据类型和协议来分配一个套接口的描述字及其所用的

C函数篇(select函数)

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等 待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回).可是使用Select就可以完成非阻塞(所谓非阻塞方式non- block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回

C函数篇(fork函数)

一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事.    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同.相当于克隆了一个自己. 我们来看一个例子: /* *  fork_test.c *  version 1

C函数篇(send函数)

send()用于向一个已经连接的socket发送数据,如果无错误,返回值为所发送数据的总数,否则返回SOCKET_ERROR. 简述 向一个已连接的套接口发送数据. #include <winsock.h> int PASCAL FAR send( SOCKET s, const char FAR* buf, int len, int flags); s:一个用于标识已连接套接口的描述字. buf:包含待发送数据的缓冲区. len:缓冲区中数据的长度. flags:调用执行方式. 注释 sen