IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言第27天,字符串函数使用与剖析(一),strlen,strcpy,strcat,strcmp,strncpy,strncat,strcmp -> 正文阅读

[C++知识库]C语言第27天,字符串函数使用与剖析(一),strlen,strcpy,strcat,strcmp,strncpy,strncat,strcmp

strlen - 求字符串长度

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strlen - 求字符串长度
//字符串以'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0')
//参数指向的字符串必须要以'\0'结束
//注意函数的返回值为size_t,是无符号的

int my_strlen(char* str) {
	int count = 0;
	while (*str != '\0') {
		count++;
		str++;
	}
	return count;
}

int main() {
	int len1 = strlen("abcdef");
	char arr[] = { 'a','b','c','d','e','f' };
	int len2 = strlen(arr);
	printf("%d\n", len1);//6
	printf("%d\n", len2);//随机值
	int len3 = my_strlen("abcdef");
	printf("%d\n", len3);//6

	return 0;
}

strcpy - 复制字符串

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strcpy - 复制字符串
//源字符串必须以'\0'结束
//会将字符串中的'\0'拷贝到目标空间
//目标空间必须足够大,以确保能存放源字符串
//目标空间必须可变


char* my_strcpy(char* dest, const char* src) {
	char* ret = dest;
	//拷贝src指向的字符串到dest指向的空间,包含'\0'
	while (*dest++ = *src++) {
		;
	}
	//返回目的空间的起始地址
	return ret;
}

int main() {
	char arr1[] = "abcdef";
	char arr2[] = "bit";
	char arr3[] = "hello";
	//将arr2拷贝到arr1中
	strcpy(arr1, arr2);
	printf("%s\n", arr1);//bit
	my_strcpy(arr1, arr3);
	printf("%s\n", arr1);//hello
	return 0;
}
bit
hello

strcat - 追加

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strcat - 追加
//源字符串必须以'\0'结束
//目标空间必须足够大,以确保能存放源字符串
//目标空间必须可变

char* my_strcat(char* dest, const char* src) {
	
	char* ret = dest;
	//1.找到目的字符串的'\0'
	while (*dest != '\0') {
		dest++;
	}
	//2.追加
	while (*dest++ = *src++) {
		;
	}
	return ret;
}

int main() {
	char arr1[30] = "hello";
	char arr2[] = "world";
	char arr3[] = "!";
	strcat(arr1, arr2);
	printf("%s\n", arr1);//helloworld
	my_strcat(arr1, arr3);
	printf("%s\n", arr1);//helloworld!
}
helloworld
helloworld!

strcmp - 比较字符串大小

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strcmp - 比较字符串大小
//第一个字符串大于第二字符串,则返回大于0的数字
//第一个字符串等于第二个字符串,则返回0
//第一个字符串小于第二个字符串,则韩慧小于0的数字

int my_strcmp(const char* str1, const char* str2) {
	while (*str1 == *str2) {
		if (*str1 == '\0') {
			return 0;//相等
		}
		str1++;
		str2++;
	}
	if (*str1 > *str2)
		return 1;//大于
	if (*str1 < *str2)
		return -1;//小于
}

int main() {
	char* p1 = "abcdef";
	char* p2 = "sqwer";
	char* p3 = "abcdee";
	int ret = strcmp(p1, p2);
	printf("%d\n", ret);//-1 - 比较ASCII码值
	int ret2 = my_strcmp(p1, p3);
	printf("%d\n", ret2);//1
	return 0;
}
-1
1

strncpy - 复制字符串,限制字符数


#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strncpy - 复制字符串,限制字符数

int main() {

	char arr1[5] = "abc";
	char arr2[] = "hello world";
	char arr3[] = "ac";
	//复制arr2的4个字符到arr1
	strncpy(arr1, arr2, 4);
	printf("%s\n", arr1);//hell
	strncpy(arr1, arr3, 5);
	printf("%s\n", arr1);//ac
	return 0;
}
hell
ac

strncat - 追加,限制字符数

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strncat - 追加,限制字符数

int main() {
	char arr1[30] = "hello";
	char arr2[] = "world";
	//向arr1追加arr2的三个字符
	strncat(arr1, arr2, 3);
	printf("%s\n", arr1);//hellowor

	return 0;
}
hellowor

strcmp - 比较字符串大小,限制字符数

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//strcmp - 比较字符串大小,限制字符数

int main() {
	char* p1 = "abcdef";
	char* p2 = "qwer";
	//比较p1,p2前4个字符
	int ret = strncmp(p1, p2,4);
	printf("%d\n", ret);//-1
	return 0;
}
-1
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:34:13  更:2021-07-30 12:35:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 3:08:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码