一懂讯、概念
/*
#include <string.h>
1.字符串拼接
原理 : 首先遍歷第一個字符串,知道遇到\0,然后取出第二個字符串中的字符,從\0的位置開始添加
strcat函數(shù) strcat(dest, src) --- 將src中的數(shù)據(jù) 拼接到dest后面
注意 : 要想使用字符串的拼接 函數(shù),那么dest必須是一個數(shù)組,并且數(shù)組的長度 必須大于拼接之后的長度 (str必須足夠長)
如果dest的數(shù)組的長度,不能完全 存放dest+scr+\0 那么就會報錯
strncat函數(shù) strncat(dest, src, len) --- char * 相當(dāng)于 dest chost char * 相當(dāng)于 scr size_t 需要拼接的個數(shù)
2.字符串拷貝
strcpy函數(shù) strcpy(dest, src) --- char * 目標(biāo) , const char * 源
strcpy函數(shù)會將 源的數(shù)據(jù)拷貝到目標(biāo)中, 并且會覆蓋目標(biāo)中原有的數(shù)據(jù)
目標(biāo)的容器必須 能夠存放 拷貝的數(shù)據(jù),如果容器 不夠就會報錯
strcpy(str1, str2);
strncpy函數(shù) strncpy(dest, src, len)
拷貝操作 是逐個替換, 拷貝了幾個 就替換幾個
str1 能夠存放元素的個數(shù) - \0
3.字符串比較
strcmp的原理 : 取出字符串中的每一個字符 進行逐個比較, 如果發(fā)現(xiàn)不相等 就不會繼續(xù)往下 比較
如果該值 等于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
// 目標(biāo) 源
// 將src中的數(shù)據(jù) 拼接到dest后面
// 注意 : 要想使用字符串的拼接 函數(shù),那么dest必須是一個數(shù)組,并且數(shù)組的長度 必須大于拼接之后的長度 (str必須足夠長)
// 如果dest的數(shù)組的長度,不能完全 存放dest+scr+\0 那么就會報錯
// strcat(str1, str2);
// strncat(dest, src, len)
// char * 相當(dāng)于 dest chost char * 相當(dāng)于 scr size_t 需要拼接的個數(shù)
// 為了避免 拼接之后超出str1的存儲范圍, 那么可以動態(tài)計算str需要拷貝幾個到str1后面不會超出
// str能夠存放的元素個數(shù) - str已經(jīng)存放的個數(shù) - \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 * 目標(biāo) , const char * 源
// strcpy 函數(shù)會將 源的數(shù)據(jù)拷貝到目標(biāo)中, 并且會覆蓋目標(biāo)中原有的數(shù)據(jù)
// 目標(biāo)的容器必須 能夠存放 拷貝的數(shù)據(jù),如果容器 不夠就會報錯
// strcpy(str1, str2);
// char * 相當(dāng)于 dest chost char * 相當(dāng)于 scr size_t 需要拷貝幾個
// 注意 : 拷貝操作 是逐個替換, 拷貝了幾個 就替換幾個
// str1 能夠存放元素的個數(shù) - \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的原理 : 取出字符串中的每一個字符 進行逐個比較, 如果發(fā)現(xiàn)不相等 就不會繼續(xù)往下 比較
int res = strcmp(str1, str2);
printf("res = %i\n",res);
return 0;
}