C語言學習筆記 入門篇 4

2021-10-21 01:51:59 字數 2648 閱讀 8860

char str=

;//加\0是因為printf遇到\0才會列印結束,否則會列印系統值。

str[0]

='s'

;printf

("方式1 改變後:%s\n"

, str)

;//列印 sunhl

char

*str2 =

"sunhl"

;//這句隱式缺省會加\0

str2[0]

='s'

;//會崩潰

printf

("方式2 改變後:%s"

, str2)

;//上行崩潰了,此處不列印

區別:

str指向的是棧空間,棧空間裡的str是從全域性區/靜態區拷貝出來的乙份,在棧空間裡修改str不會報錯;但是str2是指向棧空間裡的2000h位址,棧空間沒有字串,去修改str2的時候會修改全域性區。全域性區不能修改,拒絕訪問就報錯。

//指標挪動獲取字串資訊

//模仿strlen函式

//c/c++編譯器 陣列作為引數傳遞,會把陣列優化成指標(傳的是陣列的首位址,編譯器不知道陣列的大小)(為了高效率)

void

getarrlen

(int

*len,

char arr)

*len = count;

}sizeof和strlen的區別:sizeof的功能能是,獲得保證,能容納實現所建立的最大物件的位元組大小。

strlen的功能是返回字串的長度,該字串可能是自己定義的,也可能是記憶體中隨機的,該函式實際完成的功能是從代表該字串的第乙個位址開始遍歷,直到遇到結束符null。返du的長度大小不包括null。

sizeof(…)是運算子,在標頭檔案中typedef為unsigned int,其值在編譯時即計算好了,引數可以是陣列、指標、型別、物件、函式等。

strlen(…)是函式,要在執行時才能計算。引數必須是字元型指標(char*)。當陣列名作為引數傳入時,實際上陣列就退化成指標了。

//atoi  atof  strcmp  strcmpi使用

char

*str1 =

"45sun"

;char

*str2 =

"45sun"

;int i =

atoi

(str1)

;double d =

atof

(str1)

;int cmp =

strcmp

(str1, str2)

;//區分大小寫

int cmpi =

strcmpi

(str1, str2)

;//不區分大小寫(0代表是相等的, 非0代表是不相等的)

printf

("atoi:%d, atof:%lf, strcmp:%d, strcmpi:%d\n"

, i, d, cmp, cmpi)

;//列印 atoi:45, atof:45.000000, strcmp:1, strcmpi:0

//strstr使用

//判斷是否包含

char

*pop =

strstr

(str1,

"s");if

(pop)

//求開始出現的位置(陣列是一塊連續的記憶體空間,沒有斷層,所以可以-)

printf

("s第一次出現的位置:%d\n"

,pop-str1)

;//列印 2

//strcpy strcat

//catch:抓住

//字串拼接

char

* str3=

"==="

;char str[30]

;strcpy

(str,str1)

;//先copy到陣列裡面去

strcat

(str,str3)

;//再拼接

strcat

(str,str2)

;//拼接

printf

("拼接結果:%s\n"

,str)

;//列印:45sun===45sun

#include

void

test()

//大小寫轉換

void

lower

(char

*dest,

char

*name)

temp--

;//測試用,如果不--,temp值等於'\0',printf列印沒有值

*dest =

'\0'

;//避免printf列印系統值

printf

("temp列印:%s,name列印:%s\n"

, temp, name)

;//輸出 l,sunhl

}

C語言學習筆記 入門篇 5

本篇內容為兩道練習題,以加強對前面四節課的鞏固。ps 本系列內容為程式媛學習c語言時做的筆記。以 為主,並備註了列印結果以及詳盡的解釋注釋。希望對你有所幫助。c語言筆記入門篇包含多篇內容,當前位置 第五篇 題目 求printf的輸出結果 include intmain a 4 挪動到第四個元素 記憶...

NumPy學習筆記 入門篇

numpy學習筆記 收集者 keengle 最近在學習scipy。在理解scipy之前,numpy作為scipy基本的模組之一,是不得不去理解掌握的。先總結一下numpy部分的內容吧。接下來學習scipy,最後是pylab和matplotlib。介紹numpy是乙個python的擴充套件模組,通過使...

Spring學習筆記 入門篇

說明 本章筆記是一些針對入門的簡單步驟的筆記,入門的同學不需要知道太多關於spring內部原理的東西。還有一些犄角旮旯的瑣碎知識,如果你面試會遇到,背背就可以了。1.spring是面向介面程式設計的。可忽略 2.spring2個核心 ioc di 和aop。ioc di 也叫控制反轉。是解決類之間的...