一、概念
/*
#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;
}