国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù)

這篇具有很好參考價值的文章主要介紹了C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

個人主頁:點我進入主頁

專欄分類:C語言初階? ? ??C語言程序設(shè)計————KTV? ? ? ?C語言小游戲? ? ?C語言進階

C語言刷題

歡迎大家點贊,評論,收藏。

一起努力,一起奔赴大廠。

目錄

1.前言? ? ? ??

2.長度受限制的字符串函數(shù)

2.1strncpy函數(shù)

2.2strncat函數(shù)

2.3strncmp函數(shù)

2.4小結(jié)

3.特殊的字符串函數(shù)

3.1strstr函數(shù)

3.2strtok函數(shù)


1.前言? ? ? ??

????????在上一篇文章中我們講過了長度不受限制的字符串函數(shù),包括strlen函數(shù),strcmp函數(shù),strcpy函數(shù),strcat函數(shù),學過和沒學過的老鐵們可以點擊長度不受限制的字符串函數(shù)

今天我們我們就講講長度受限制的字符串函數(shù),包括strncpy函數(shù),strncat函數(shù),strncmp函數(shù),在這些函數(shù)中長度受限制是需要我們加上要修改的字節(jié)數(shù)。還有一些特殊的函數(shù)包括strstr函數(shù),strtok函數(shù)。今天就來看看我們的內(nèi)容吧。

2.長度受限制的字符串函數(shù)

2.1strncpy函數(shù)

我們進入cplusplus函數(shù)可以看到strnpcy函數(shù)的參數(shù)。

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

????????strncpy函數(shù)的返回類型是char*,他的參數(shù)是 char * destination, const char * source, size_t num,在這里對于source由于不需要進行修改,只是需要進行拷貝,所以加上const,對于size_num是需要將source字符串的num個字節(jié)進行拷貝到destination,在第一個字節(jié)處進行修改,詳細的代碼如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdefghigh";
	char brr[] = "zzzzz";
	strncpy(arr, brr, 4);
	printf("%s", arr);
	return 0;
}

?我們運行查看

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

我們發(fā)現(xiàn)字符串a(chǎn)rr的前4個字節(jié)修改為字符串的前4個字節(jié)。

2.2strncat函數(shù)

同樣我們進入cplusplus函數(shù)查看它的參數(shù)。

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

? ? ? ? strncat函數(shù)的返回值是char*,它的參數(shù)是?char * destination, const char * source, size_t num

和函數(shù)strncpy函數(shù),由于source函數(shù)不需要進行修改,所以用const函數(shù)進行修改,在size_t num是需要連接的字符的個數(shù),詳細的代碼如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[100] = "abcdefghigh";
	char brr[] = "xzzzzz";
	strncat(arr, brr, 4);
	printf("%s", arr);
	return 0;
}

我們運行代碼可以看到:

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

在這里我么的字符串brr是source,把他的前4個字符連接到字符串a(chǎn)rr后面,同時拷貝一下‘\0’;

2.3strncmp函數(shù)

我們進入cplusplus網(wǎng)站

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

????????我們可以看到strncmp的參數(shù)是const char * str1, const char * str2, size_t num,由于str1和str2不需要進行修改,只需要進行比較,所以用const進行修飾,size_t是需要比較的字符串的個數(shù)。對于strncmp函數(shù)的返回值是int類型,C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

?????????如果第一個大于第二個返回大于0的數(shù)據(jù),如果第一個小于第二個返回小于0的數(shù)據(jù),如果第一個等于第二個則返回0,注意這里的比較是對于前num個字符進行比較,比較的形式和前面的額strcmp一樣,具體的代碼演示如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdefghigh";
	char brr[] = "abce";
	int ret=strncmp(arr, brr, 4);
	printf("%d", ret);
	return 0;
}

我們運行可以看到:

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

函數(shù)的返回值是-1。

2.4小結(jié)

? ? ? ? 對于這三個函數(shù),他們和長度不受限制的類似,只是多了一個限制條件,這個限制條件是限制的source.也就是說num是幾個就拷貝幾個,里面的循環(huán)由遇到‘\0’的while循環(huán),改為了for循環(huán),判定是i<num。

3.特殊的字符串函數(shù)

3.1strstr函數(shù)

? ? ? ? strstr函數(shù)是一個查找子串的函數(shù),它返回最早出現(xiàn)字串的位置,我們進入cplusplus網(wǎng)站進行查看,

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

? ? ? ? 我們看第一條,它參數(shù)和返回值都用const進行修飾,事實上他們兩條都一樣,只是第一條用const進行修飾,讓它的值不能改變,更加的安全,防止非法的修改。我們舉個例子來感受一直strstr函數(shù)的應用,代碼如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcabcdefghigh";
	char brr[] = "abcd";
	char *crr=strstr(arr, brr);
	printf("%s", crr);
	return 0;
}

我們運行可以看到:

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

我們想要模擬實現(xiàn),首先畫一下它的思路:

C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

????????就是由str2和str1進行記錄位置,s1和s2進行比較,不相等str1和s1進行移動,相等str1和str2不動,s1和s2進行移動,相等移動,不相同重新指向str1和str2?,依次循環(huán),直到str1遇到‘\0’,模擬實現(xiàn)如下:

#include <stdio.h>
char* my_strstr(char* arr, char* brr)
{
	char* str1 = arr, * s1 = arr, * str2 = brr, * s2 = brr;
	while (*str1)
	{
		if (*s2 == '\0')
		{
			return str1;
		}
		if (*s1 == *s2)
		{
			s1++;
			s2++;
		}
		else
		{
			str1++;
			s1 = str1;
			s2 = str2;
		}
	}
}
int main()
{
	char arr[] = "abcabcdef";
	char brr[] = "abcd";
	char* p = my_strstr(arr, brr);
	printf("%s", p);
	return 0;
}

3.2strtok函數(shù)

????????C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù),C語言進階,c語言

????????我們可以看到,strtok函數(shù)返回類型是char*,它的參數(shù)是 、char * str, const char * delimiters,這個函數(shù)是字符串切割,需要兩個字符串,第一個字符串中出現(xiàn)第二個字符串就會進行切割然后指向此段的首字符,具體的代碼如下:

#include <string.h>
#include <stdio.h>
int main()
{
	char arr[] = "abc,abcd@efacd*add";
	char brr[] = ",@*";
	char* str = arr;
	for (str = strtok(arr, brr); str != NULL; str = strtok(NULL, brr))
	{
		printf("%s\n", str);
	}
	return 0;
}

今天的內(nèi)容就結(jié)束了,希望大家可以一鍵三連。文章來源地址http://www.zghlxwxcb.cn/news/detail-714518.html

到了這里,關(guān)于C/C++字符函數(shù)和字符串函數(shù)詳解————長度受限制的字符串函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • c語言進階部分詳解(詳細解析字符串常用函數(shù),并進行模擬實現(xiàn)(下))

    c語言進階部分詳解(詳細解析字符串常用函數(shù),并進行模擬實現(xiàn)(下))

    上篇文章介紹了一些常用的字符串函數(shù),大家可以跳轉(zhuǎn)過去瀏覽一下:c語言進階部分詳解(詳細解析字符串常用函數(shù),并進行模擬實現(xiàn)(上))_總之就是非常唔姆的博客-CSDN博客 今天接著來介紹一些:? 目錄 一.字符串查找 1.strstr() 1.1示例 1.2注意事項: 1.3模擬實現(xiàn) ?2.

    2024年02月07日
    瀏覽(20)
  • PHP strlen()函數(shù)詳解,PHP獲取字符串長度

    「作者主頁」: 士別三日wyx 「作者簡介」: CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」: 對網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》 strlen() 可以返回 「字符串」 的 「長度」 。 語法 參數(shù) $str :需要計算長度

    2024年02月15日
    瀏覽(20)
  • 計算字符串長度的三種方法(庫函數(shù) 指針 )【詳解】

    計算字符串長度的三種方法(庫函數(shù) 指針 )【詳解】

    求字符串長度簡單來說就是計算一個字符串(字符數(shù)組)中元素的個數(shù)即從數(shù)組頭部計數(shù),直到遇到字符串’\\0’結(jié)束符為止, 計數(shù)結(jié)果不包括’\\0’. C語言中的庫函數(shù)strlen,它包含于string.h中,因此我們需要在使用前添加頭文件 ,具體用法如下: strlen從數(shù)組頭部計數(shù),直到遇到字

    2024年02月06日
    瀏覽(23)
  • 進階C語言-字符函數(shù)和字符串函數(shù)

    進階C語言-字符函數(shù)和字符串函數(shù)

    ?注意事項: 字符串以 \\\'\\0\\\' 作為結(jié)束標志, strlen函數(shù) 返回的是在字符串中 \\\'\\0\\\' 前面出現(xiàn)的字符個數(shù)(不包括 \\\'\\0\\\' ) 參數(shù)指向的字符串必須以 \\\'\\0\\\' 結(jié)束 注意函數(shù)的返回值是 size_t ,是無符號的 ?運行示例: ??1.1.1strlen函數(shù)的模擬實現(xiàn) ??1.計數(shù)器法 assert函數(shù) 的 作用 是斷言,

    2024年02月04日
    瀏覽(19)
  • C語言進階---字符串+內(nèi)存函數(shù)

    C語言進階---字符串+內(nèi)存函數(shù)

    重點介紹處理字符和字符串的庫函數(shù)的使用和注意事項。 求字符串長度 strlen() 長度不受限制的的字符串函數(shù) strcpy() strcat() strcmp() 長度受限制的的字符串函數(shù) strncpy() strncat() strncmp() 字符串查找 strstr() strtok() 錯誤信息報告 strerror() 字符操作 內(nèi)存操作函數(shù) memcpy() memmove() memset(

    2024年02月12日
    瀏覽(20)
  • C語言中的字符串操作函數(shù)自定義實現(xiàn):標準版與限定長度版

    C語言中的字符串操作函數(shù)自定義實現(xiàn):標準版與限定長度版

    ??????? 目錄 1. 標準字符串操作函數(shù)自定義實現(xiàn) (a) 自定義strcpy函數(shù) (b) 自定義strcat函數(shù) (c) 自定義strcmp函數(shù) 2. 限定長度字符串操作函數(shù)自定義實現(xiàn) (a) 自定義strncpy函數(shù) (b) 自定義strncat函數(shù) (c) 自定義strncmp函數(shù) ?對字符串的操作是不可或缺的一部分。標準庫提供了如strcpy、

    2024年01月21日
    瀏覽(45)
  • 進階C語言——字符串和內(nèi)存函數(shù)

    進階C語言——字符串和內(nèi)存函數(shù)

    今天我們學點庫函數(shù) 字符函數(shù)和字符串函數(shù) 求字符串長度函數(shù)-strlen strlen需要的頭文件是string.h ,那它的作用是什么呢?? 他是來求字符串長度的,統(tǒng)計的是’\\0’前的字符串長度 size_t是無符號的意思 學會了strlen函數(shù)怎么使用,那我們現(xiàn)在模擬實現(xiàn)一下strlen 之前講過三種方

    2024年02月16日
    瀏覽(27)
  • 【C語言進階(三)】字符串操作函數(shù)

    【C語言進階(三)】字符串操作函數(shù)

    ??博主CSDN主頁:杭電碼農(nóng)-NEO?? ? ?專欄分類:C語言學習分享? ? ??代碼倉庫:NEO的學習日記?? ? ??關(guān)注我??帶你學習更多C語言知識 ? ???? C語言的標準庫為我們提供了豐富的字符串操作函數(shù)與內(nèi)存操作函數(shù),有我們熟悉的 strlen ,strcpy ,也有我們不熟悉的 strchr , strstr 等

    2024年02月09日
    瀏覽(26)
  • C語言字符函數(shù)和字符串函數(shù)詳解

    C語言字符函數(shù)和字符串函數(shù)詳解

    ? ? ? ?Hello, 大家好,我是一代,今天給大家?guī)碛嘘P(guān)字符函數(shù)和字符串函數(shù)的有關(guān)知識 ? ? ? ?所屬專欄:C語言 ? ? ? ?創(chuàng)作不易,望得到各位佬們的互三呦 在C語言中有一些函數(shù)是專門為字符設(shè)計的,這些函數(shù)的使用都需要包含一個頭文件ctype.h 如:(注:以下函數(shù)原型都

    2024年03月20日
    瀏覽(33)
  • C語言——詳解字符函數(shù)和字符串函數(shù)(一)

    C語言——詳解字符函數(shù)和字符串函數(shù)(一)

    Hi,鐵子們好呀!今天博主來給大家更一篇C語言的字符函數(shù)和字符串函數(shù)~ 具體講的內(nèi)容如下: 前言: 在編程的過程中,我們經(jīng)常要處理字符和字符串,C語言標準庫中提供了一系列庫函數(shù),接下來我們就學習一下這些函數(shù)。 眾所周知,C語言中提供了一系列的字符函數(shù),這些

    2024年03月17日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包