最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中操作字符串的函數(shù)詳解

 更新時間:2022年03月23日 09:42:11   作者:朱國鑫  
這篇文章主要為大家詳細介紹了C語言中操作字符串的函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、函數(shù)表

函數(shù)名函數(shù)功能
strlensize_t strlen(const char* s);返回字符串 s 的長度(不包括結尾的0)
strcmpint strcmp(const char* s1, const char* s2);比較兩個字符串,返回:如果 s1 == s2,返回 0;如果 s1<s2 則返回小于 0 (如 -1);如果 s1>s2 則返回大于 0 (如 1)
strcpychar* strcpy(char* restrict dst, const char* reestrict src)把字符串 src 復制拷貝到字符串 dst,返回 dst,restrict 表明 src 和 dst 不能重疊
strcatchar* stract(char* restrict s1, const char* reestrict s2)把字符串 s2 拷貝到字符串 s1 的后面,連接成一個長的字符串,返回 s1
strchrchar* strchr(const char* s, int c)返回一個指針,指向字符串 s1 中字符 ch 的第一次出現(xiàn)的位置
strstrchar* strstr(const char* s1, const char* s2)返回一個指針,指向字符串 s1 中字符串 s2 的第一次出現(xiàn)的位置

二、strlen

實例

#include <stdio.h>
#include <string.h>
//自定義 strlen()函數(shù)
size_t mylen(const char* s)
{
	int idx = 0;
	while (s[idx] != '\0') {
		idx++;
	}
	return idx;
}
int main()
{
	char a[] = "Hello";
	printf("mylen=%llu\n", mylen(a));
	printf("strlen=%llu\n", strlen(a));// {'H', 'e', 'l', 'l', 'o'};
	printf("sizeof=%llu\n", sizeof(a));// {'H', 'e', 'l', 'l', 'o','\0'};
	return 0;
}

運行結果

在這里插入圖片描述

三、strcmp

實例

#include <stdio.h>
#include <string.h>
//自定義 strcmp()函數(shù)
int mycmp1(const char* s1, const char* s2)
{
	int idx = 0;
	while (1) {
		if (s1[idx] != s2[idx]) {
			break;
		}
		else if (s1[idx] == '\0') {
			break;
		}
		idx++;
	}
	return s1[idx] - s2[idx];
}
int mycmp2(const char* s1, const char* s2)
{
	int idx = 0;
	while (s1[idx] == s2[idx] && s1[idx] != 0) {
		idx++;
	}
	return s1[idx] - s2[idx];
}
int mycmp3(const char* s1, const char* s2)
{
	int idx = 0;
	while (*s1 == *s2 && *s1 != 0) {
		s1++;
		s2++;
	}
	return *s1 - *s2;
}
int main()
{
	char s1[] = "abc";
	char s2[] = "abc";
	char s3[] = "abc ";
	char s4[] = "bbc";
	char s5[] = "Abc";
	printf("mycmp1=%d\n", mycmp1(s1, s2));
	printf("mycmp2=%d\n", mycmp2(s1, s3));
	printf("mycmp3=%d\n", mycmp3(s1, s4));
	printf("mycmp3=%d\n", mycmp3(s1, s5));
	printf("strlen=%d\n", strcmp(s1, s2));
	printf("strlen=%d\n", strcmp(s1, s3));
	printf("strlen=%d\n", strcmp(s1, s4));
	printf("strlen=%d\n", strcmp(s1, s5));
	return 0;
}

運行結果

VS編輯器的原因,庫函數(shù) strlen 的結果只有 0, -1, 1 三種結果。

在這里插入圖片描述

四、strcpy

// 復制一個字符串
char* dst = (char*)malloc(strlen(src)+1);
strcpy(dst,src);
// strlen 查 src 大小 +1 (+1 的原因是加上字符串最后的 ‘\0', strlen 讀取的長度不包括 ‘\0'), 再 malloc 分配空間給 dst, 這樣 dst 的空間正好等于 src, 然后再執(zhí)行 strcpy 復制操作

實例

#include <stdio.h>
#include <string.h>
//自定義 strcpy()函數(shù)
char* mycpy1(char* dst, const char* src)
{
	int idx = 0;
	while (src[idx] != '\0') {
		dst[idx] = src[idx];
		idx++;
	}
	dst[idx] = '\0';
	return dst;
}
char* mycpy2(char* dst, const char* src)
{
	char* ret = dst;
	while (*src) {
		*dst++ = *src++;
	}
	*dst = '\0';
	return ret;
}
int main()
{
	char s1[] = "abc";
	char s2[] = "def";
	char s3[] = "ghi";
	char s4[] = "jkl";
	printf("s1=%s\n", s1);
	strcpy(s1, s2);
	printf("s1=%s\n", s1);
	mycpy1(s1, s3);
	printf("s1=%s\n", s1);
	mycpy2(s1, s4);
	printf("s1=%s\n", s1);
	return 0;
}

運行結果

在這里插入圖片描述

五、stract

實例

#include <stdio.h>
#include <string.h>
int main()
{
	char s1[10] = "abc";
	char s2[] = "def";
	printf("s1=%s\n", s1);
	strcat(s1, s2);
	printf("s1=%s\n", s1);
	return 0;
}

運行結果

在這里插入圖片描述

六、strchr

實例

#include <stdio.h>
#include <string.h>
int main()
{
	char s1[10] = "abcdebcde";
	printf("%p\n", s1);
	printf("%p\n", s1 + 1);
	char* p = strchr(s1, 'b');
	printf("%s\n", p);
	printf("%p\n", p);
	return 0;
}

運行結果

在這里插入圖片描述

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容! 

相關文章

最新評論

昌吉市| 古交市| 沽源县| 博乐市| 蚌埠市| 南岸区| 古丈县| 屏边| 米脂县| 黄陵县| 衡阳县| 汶川县| 桂阳县| 乌海市| 泽普县| 汝阳县| 灌南县| 平利县| 周口市| 阜南县| 鄯善县| 科技| 石门县| 淮南市| 千阳县| 仁怀市| 达拉特旗| 庄浪县| 介休市| 冕宁县| 忻州市| 隆昌县| 昌平区| 广饶县| 从江县| 探索| 瑞安市| 蕉岭县| 牡丹江市| 衡阳县| 临沧市|