首页 > 编程知识 正文

C语言 strcatstrncatstrcmpstrcpystrncpystrncpysmemcpy,c哪个语言是做游戏的

时间:2023-05-06 03:55:58 阅读:265425 作者:3915

文章目录 1、strcat描述声明参数返回值实例 2、strncat描述声明参数返回值实例 3、strcmp描述声明参数返回值实例 4、strcpy描述声明参数返回值实例 5、strncpy描述声明参数返回值实例 6、strncpy_s7、memcpy描述声明参数返回值实例

1、strcat

C 标准库 - <string.h>

描述

C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

声明

下面是 strcat() 函数的声明。

char *strcat(char *dest, const char *src) 参数

dest – 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
src – 指向要追加的字符串,该字符串不会覆盖目标字符串。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

实例

下面的实例演示了 strcat() 函数的用法。

#include <stdio.h>#include <string.h> int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strcat(dest, src); printf("最终的目标字符串: |%s|", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: |This is destinationThis is source|

2、strncat

C 标准库 - <string.h>

描述

C 库函数 char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。

声明

下面是 strncat() 函数的声明。

char *strncat(char *dest, const char *src, size_t n) 参数

dest – 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。
src – 要追加的字符串。
n – 要追加的最大字符数。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

实例

下面的实例演示了 strncat() 函数的用法。

#include <stdio.h>#include <string.h>int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strncat(dest, src, 15); printf("最终的目标字符串: |%s|", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: |This is destinationThis is source|

3、strcmp

C 标准库 - <string.h>

描述

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

声明

下面是 strcmp() 函数的声明。

int strcmp(const char *str1, const char *str2) 参数

str1 – 要进行比较的第一个字符串。
str2 – 要进行比较的第二个字符串。

返回值

该函数返回值如下:

如果返回值小于 0,则表示 str1 小于 str2。如果返回值大于 0,则表示 str1 大于 str2。如果返回值等于 0,则表示 str1 等于 str2。 实例

下面的实例演示了 strcmp() 函数的用法。

#include <stdio.h>#include <string.h> int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) { printf("str1 小于 str2"); } else if(ret > 0) { printf("str1 大于 str2"); } else { printf("str1 等于 str2"); } return(0);}

让我们编译并运行上面的程序,这将产生以下结果:str1 大于 str2

4、strcpy

C 标准库 - <string.h>

描述

C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。strcpy函数会导致内存溢出。strcpy拷贝函数不安全,他不做任何的检查措施,也不判断拷贝大小,不判断目的地址内存是否够用。

声明

下面是 strcpy() 函数的声明。

char *strcpy(char *dest, const char *src) 参数

dest – 指向用于存储复制内容的目标数组。
src – 要复制的字符串。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

实例 #include <stdio.h>#include <string.h> int main() { char src[40]; char dest[100]; memset(dest, '', sizeof(dest)); strcpy(src, "This is runoob.com"); strcpy(dest, src); printf("最终的目标字符串: %sn", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: This is runoob.com

5、strncpy

strncpy拷贝函数,虽然计算了复制的大小,但是也不安全,没有检查目标的边界。

C 标准库 - <string.h>

描述

C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。

声明

下面是 strncpy() 函数的声明。

char *strncpy(char *dest, const char *src, size_t n) 参数

dest – 指向用于存储复制内容的目标数组。
src – 要复制的字符串。
n – 要从源中复制的字符数。

返回值

该函数返回最终复制的字符串。

实例

下面的实例演示了 strncpy() 函数的用法。在这里,我们使用函数 memset() 来清除内存位置。

#include <stdio.h>#include <string.h> int main() { char src[40]; char dest[12]; memset(dest, '', sizeof(dest)); strcpy(src, "This is runoob.com"); strncpy(dest, src, 10); printf("最终的目标字符串: %sn", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: This is ru

6、strncpy_s

目前,strncpy是字符串拷贝推荐的用法

加_s版本则是从VS2005开始推出的安全版本,

而加_s版本之所以安全,是因为他们在接口增加了一个参数numElems来表明dest中的字节数,

防止目标指针dest中的空间不够而导致出现Bug,同时返回值改成返回错误代码,而不是为了一些所谓的方便而返回char*。这样接口的定义就比原来安全很多。

但是,_s版本并不是标准库,所以,不推荐使用

7、memcpy

memcpy拷贝函数,它与strcpy的区别就是memcpy可以拷贝任意类型的数据,strcpy只能拷贝字符串类型。

C 标准库 - <string.h>

描述

C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。

声明

下面是 memcpy() 函数的声明。

void *memcpy(void *str1, const void *str2, size_t n) 参数

str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
n – 要被复制的字节数。

返回值

该函数返回一个指向目标存储区 str1 的指针。

实例 // 将字符串复制到数组 dest 中#include <stdio.h>#include <string.h>int main () { const char src[50] = "http://www.runoob.com"; char dest[50]; memcpy(dest, src, strlen(src)+1); printf("dest = %sn", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:dest = http://www.runoob.com

一分快三技巧准确率100 描述

C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。

声明

下面是 strncpy() 函数的声明。

char *strncpy(char *dest, const char *src, size_t n) 参数

dest – 指向用于存储复制内容的目标数组。
src – 要复制的字符串。
n – 要从源中复制的字符数。

返回值

该函数返回最终复制的字符串。

实例

下面的实例演示了 strncpy() 函数的用法。在这里,我们使用函数 memset() 来清除内存位置。

#include <stdio.h>#include <string.h> int main() { char src[40]; char dest[12]; memset(dest, '', sizeof(dest)); strcpy(src, "This is runoob.com"); strncpy(dest, src, 10); printf("最终的目标字符串: %sn", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: This is ru

6、strncpy_s

目前,strncpy是字符串拷贝推荐的用法

加_s版本则是从VS2005开始推出的安全版本,

而加_s版本之所以安全,是因为他们在接口增加了一个参数numElems来表明dest中的字节数,

防止目标指针dest中的空间不够而导致出现Bug,同时返回值改成返回错误代码,而不是为了一些所谓的方便而返回char*。这样接口的定义就比原来安全很多。

但是,_s版本并不是标准库,所以,不推荐使用

7、memcpy

memcpy拷贝函数,它与strcpy的区别就是memcpy可以拷贝任意类型的数据,strcpy只能拷贝字符串类型。

C 标准库 - <string.h>

描述

C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。

声明

下面是 memcpy() 函数的声明。

void *memcpy(void *str1, const void *str2, size_t n) 参数

str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
n – 要被复制的字节数。

返回值

该函数返回一个指向目标存储区 str1 的指针。

实例 // 将字符串复制到数组 dest 中#include <stdio.h>#include <string.h>int main () { const char src[50] = "http://www.runoob.com"; char dest[50]; memcpy(dest, src, strlen(src)+1); printf("dest = %sn", dest); return(0);}

让我们编译并运行上面的程序,这将产生以下结果:dest = http://www.runoob.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。