一、概念
/*
#include <string.h>
1.字符串拼接
原理 : 首先遍历第一个字符串,知道遇到\0,然后取出第二个字符串中的字符,从\0的位置开始添加
strcat函数 strcat(dest, src) --- 将src中的数据 拼接到dest后面
注意 : 要想使用字符串的拼接 函数,那么dest必须是一个数组,并且数组的长度 必须大于拼接之后的长度 (str必须足够长)
如果dest的数组的长度,不能完全 存放dest+scr+\0 那么就会报错
strncat函数 strncat(dest, src, len) --- char * 相当于 dest chost char * 相当于 scr size_t 需要拼接的个数
2.字符串拷贝
strcpy函数 strcpy(dest, src) --- char * 目标 , const char * 源
strcpy函数会将 源的数据拷贝到目标中, 并且会覆盖目标中原有的数据
目标的容器必须 能够存放 拷贝的数据,如果容器 不够就会报错
strcpy(str1, str2);
strncpy函数 strncpy(dest, src, len)
拷贝操作 是逐个替换, 拷贝了几个 就替换几个
str1 能够存放元素的个数 - \0
3.字符串比较
strcmp的原理 : 取出字符串中的每一个字符 进行逐个比较, 如果发现不相等 就不会继续往下 比较
如果该值 等于0, 那么证明 两个字符串相等
如果该值 小于0, 那么证明 str 小于 str2
如果该值 大于0, 那么证明 str 大于 str2
*/
二、代码
#include <stdio.h>
#include <string.h>
int main()
{
#pragma 1.字符串拼接 (strcat \ strncat)
// 原理 : 首先遍历第一个字符串,知道遇到\0,然后取出第二个字符串中的字符,从\0的位置开始添加
// char str1[7] = "lyh";
// char str2[10] = " cool";
// strcat(dest, src)
// dest src
// 目标 源
// 将src中的数据 拼接到dest后面
// 注意 : 要想使用字符串的拼接 函数,那么dest必须是一个数组,并且数组的长度 必须大于拼接之后的长度 (str必须足够长)
// 如果dest的数组的长度,不能完全 存放dest+scr+\0 那么就会报错
// strcat(str1, str2);
// strncat(dest, src, len)
// char * 相当于 dest chost char * 相当于 scr size_t 需要拼接的个数
// 为了避免 拼接之后超出str1的存储范围, 那么可以动态计算str需要拷贝几个到str1后面不会超出
// str能够存放的元素个数 - str已经存放的个数 - \0
/*
size_t length = sizeof(str1) / sizeof(str1[0]) - strlen(str1) - 1;
// strncat(str1, str2, 2);
strncat(str1, str2, length);
printf("拼接后 %s\n",str1);
*/
#pragma 2.字符串拷贝
//
/*
char str1[4] = "lyh";
char str2[10] = "cool";
printf("拷贝前 %s\n",str1);
// strcpy(dest, src)
// char * 目标 , const char * 源
// strcpy 函数会将 源的数据拷贝到目标中, 并且会覆盖目标中原有的数据
// 目标的容器必须 能够存放 拷贝的数据,如果容器 不够就会报错
// strcpy(str1, str2);
// char * 相当于 dest chost char * 相当于 scr size_t 需要拷贝几个
// 注意 : 拷贝操作 是逐个替换, 拷贝了几个 就替换几个
// str1 能够存放元素的个数 - \0
size_t length = sizeof(str1) / sizeof(str1[0]) -1;
printf("length = %li\n",length);
strncpy(str1, str2, length);
printf("拼接后 %s\n",str1);
*/
#pragma 3.字符串比较
char str1[] = "abb";
char str2[] = "abc";
// strcmp 它会对传入的字符串 进行比较, 比较完毕之后 ,会返回一个整型的值 给我们
// 如果该值 等于0, 那么证明 两个字符串相等
// 如果该值 小于0, 那么证明 str 小于 str2
// 如果该值 大于0, 那么证明 str 大于 str2
// strcmp的原理 : 取出字符串中的每一个字符 进行逐个比较, 如果发现不相等 就不会继续往下 比较
int res = strcmp(str1, str2);
printf("res = %i\n",res);
return 0;
}
网友评论