string相关库函数

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

功能
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

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

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

实例:

#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|

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

功能
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。

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

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

实例:

#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|

char *strchr(const char *str, int c)

功能
在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。

参数:
str – 要被检索的 C 字符串。
c – 在 str 中要搜索的字符。

返回值:
该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。

实例:

#include <stdio.h>
#include <string.h>int main ()
{const char str[] = "http://www.runoob.com";const char ch = '.';char *ret;ret = strchr(str, ch);printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);return(0);
}

输出:

 |.| 之后的字符串是 - |.runoob.com|

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

功能
把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

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

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

实例:

#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、

int strncmp(const char *str1, const char *str2, size_t n)

功能
把 str1 和 str2 进行比较,最多比较前 n 个字节。

参数:
str1 – 要进行比较的第一个字符串。
str2 – 要进行比较的第二个字符串。
n – 要比较的最大字符数。

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

实例:

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

输出:

 str2 小于 str1

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

功能
把 src 所指向的字符串复制到 dest。需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

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

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

实例:

#include <stdio.h>
#include <string.h>int main ()
{char str1[]="Sample string";char str2[40];char str3[40];strcpy (str2,str1);strcpy (str3,"copy successful");printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);return 0;
}

输出:

str1: Sample string
str2: Sample string
str3: copy successful

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

功能
把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。

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

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

实例:

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

输出:

最终的目标字符串: This is ru

size_t strlen(const char *str)

功能
计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。

参数:
str – 要计算长度的字符串。

返回值:
该函数返回字符串的长度。

实例:

#include <stdio.h>
#include <string.h>int main ()
{char str[50];int len;strcpy(str, "This is runoob.com");len = strlen(str);printf("|%s| 的长度是 |%d|\n", str, len);return(0);
}

输出:

|This is runoob.com| 的长度是 |18|

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode44. 通配符匹配 又是一道没有解释的字符串dp困难题

给定一个字符串 (s) 和一个字符模式 (p) &#xff0c;实现一个支持 ? 和 * 的通配符匹配。 ? 可以匹配任何单个字符。 * 可以匹配任意字符串&#xff08;包括空字符串&#xff09;。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空&#xff0c;且只包含从 a-z 的小写…

深入学习卷积神经网络(CNN)的原理知识

转载自https://www.cnblogs.com/wj-1314/p/9754072.html 在深度学习领域中&#xff0c;已经经过验证的成熟算法&#xff0c;目前主要有深度卷积网络&#xff08;DNN&#xff09;和递归网络&#xff08;RNN&#xff09;&#xff0c;在图像识别&#xff0c;视频识别&#xff0c;语…

java中如何生成随机数?

java中如何生成随机数&#xff1f; package com.test.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; public class CharacterUtils {/*** 第一种方法&#xff1b;length为产生的位数*/public static String getRandomString(int…

leetcode132. 分割回文串 II

给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回符合要求的最少分割次数。 示例: 输入: "aab" 输出: 1 解释: 进行一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。 思路&#xff1a;dp[i]…

为什么需要智能指针

参考自https://www.cnblogs.com/round1/p/12906648.html 主要为了避免以下Bug: 内存泄露 &#xff1a;对象无法被释放&#xff0c;最常见的问题。野指针 &#xff1a; 指针指向未知。重复释放 : 顾名思义。 &#xff08;一&#xff09;内存泄露 : 1. 抛出异常&…

leetcode1068. 产品销售分析 I(SQL)

销售表 Sales&#xff1a; -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | -------------------- (sale_id, year) 是销售表…

多进程与多线程通信同步机制

多进程通信方式 管道pipe&#xff1a;管道是一种半双工的通信方式&#xff0c;数据只能单向流动&#xff0c;而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道FIFO&#xff1a;有名管道也是半双工的通信方式&#xff0c;但是它允许无亲缘关…

leetcode1069. 产品销售分析 II(SQL)

销售表&#xff1a;Sales -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | -------------------- sale_id 是这个表的主键。…

leetcode1070. 产品销售分析 III(SQL)

销售表 Sales&#xff1a; -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | -------------------- sale_id 是此表的主键。 …

C/C++中static的用法全局变量与局部变量

转载自C/C中static的用法全局变量与局部变量 1.什么是static? static 是C/C中很常用的修饰符&#xff0c;它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量&#xff0c;当程序执行到它的定义处时&#xff0c;编译器为它在栈上分配空间&…

查看商品图片,鼠标悬浮图片放大js实现

2010-06-07 10:18:46|分类&#xff1a;Javascript|字号订阅 <%pagelanguage"java"import"java.util.*"pageEncoding"UTF-8"%> <%pageimport"com.pojo.Products"%> <% String path request.getContextPath(); String b…

leetcode547. 朋友圈

班上有 N 名学生。其中有些人是朋友&#xff0c;有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友&#xff0c;B 是 C 的朋友&#xff0c;那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈&#xff0c;是指所有朋友的集合。 给定一个 N * N 的矩阵 M&#xff0c;表…

C++中volatile关键字

转载https://blog.csdn.net/weixin_44363885/article/details/92838607 一、volatile介绍 volatile提醒编译器它后面所定义的变量随时都有可能改变&#xff0c;因此编译后的程序每次需要存储或读取这个变量的时候&#xff0c;都会直接从变量地址中读取数据。如果没有volatile…

leetcode261. 以图判树

给定从 0 到 n-1 标号的 n 个结点&#xff0c;和一个无向边列表&#xff08;每条边以结点对来表示&#xff09;&#xff0c;请编写一个函数用来判断这些边是否能够形成一个合法有效的树结构。 示例 1&#xff1a; 输入: n 5, 边列表 edges [[0,1], [0,2], [0,3], [1,4]] 输…

leetcode323. 无向图中连通分量的数目

给定编号从 0 到 n-1 的 n 个节点和一个无向边列表&#xff08;每条边都是一对节点&#xff09;&#xff0c;请编写一个函数来计算无向图中连通分量的数目。 示例 1: 输入: n 5 和 edges [[0, 1], [1, 2], [3, 4]] 0 3 | | 1 --- 2 4 输出…

leetcode79. 单词搜索 网格地图搜索+回溯经典写法啦

给定一个二维网格和一个单词&#xff0c;找出该单词是否存在于网格中。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board [ [A,B,C…

leetcode1075. 项目员工 I(SQL)

项目表 Project&#xff1a; ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- 主键为 (project_id, employee_id)。 employee_id 是员工表 Employee 表的外键。 员工…

leetcode1082. 销售分析 I (SQL)

产品表&#xff1a;Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是这个表的主键. 销售表&#xff1a;Sale…

Oracle 获取当前日期及日期格式

Oracle 获取当前日期及日期格式 <wbr><wbr> 获取系统日期&#xff1a;<wbr><wbr><span style"padding:0px; margin:0px; color:rgb(255,0,0)">SYSDATE()<br style"padding-bottom:0px; padding-top:0px; padding-left:0px; ma…

leetcode1083. 销售分析 II(SQL)

Table: Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是这张表的主键 Table: Sales --------------------…