字元陣列與字串(上)

2021-10-07 02:54:57 字數 3395 閱讀 9397

(一)、統計空格

解決問題:輸入一行字元(字元個數不多於80),統計其中空格的個數

#include

intmain

(void

)printf

("空格數為%d\n"

,count)

;return0;

}

(二)、一維字元陣列與字串

一維字元陣列的定義、引用、初始化與其他型別的一維陣列一樣。

/*定義乙個含80個字元型元素的陣列str*/

char str[80]

;/*初始化陣列t*/

char t[5]

=;

1、字串常量

字串常量是雙引號括起來的任意字串行

例如:

"hellow world"

"welcome china\n"

//字串常量中可以包含轉義序列

2、字串的儲存

字串遇到』\0』結束

3、字串與字元陣列

(1)、在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串

(2)、字元陣列和字串的區別是:字串的末尾有乙個空字元『\0』

/*字串可按如下方式宣告並初始化*/

char name[15]

=;//手工加乙個空字元

char name[15]

="wangli"

;//系統將自動加入乙個空字元

char name=

""12345678

;//省略陣列的大小,系統自動計算,大小為後面的字元總數+1,最後乙個元素存入乙個空字元

//後面兩種為陣列賦初值的方式,本質上與第一種方式本質相同,只是寫出了我們更習慣的樣子

(三)、字串的輸入輸出

方法1:用%s整體輸入輸出

char name[10]

;scanf

("%s"

,name)

;printf

("%s"

,name)

;

方法2 ;用gets和puts函式

char name[10]

;gets

(name)

;//使用gets函式允許輸入空格

puts

(name)

;

(四)、統計單詞個數

解決問題:從鍵盤讀入乙個字串,統計其中的單詞個數。

解法1:如果乙個空格後跟乙個非空格,一定是新單詞開始;且第乙個字元不是空格則count+1

#include

intmain

(void)if

(str[0]

!=' '

) count++

;printf

("單詞數為%d\n"

,count)

;return0;

}

解法2:如果乙個非空格後是乙個空格,一定是單詞的結束

#include

#include

intmain

(void

) len =

strlen

(str);if

(str[len -1]

!=' '

) count++

;printf

("單詞數為%d\n"

,count)

;return0;

}

(1)、strlen:求字串的長度

例如:

char str[10]

="china"

;printf

("%d\n"

,strlen

(str));

或者:printf

("%d\n"

,strlen

("china"))

;輸出結果都為5

(2)、strcpy:字串的複製

例如:

char str1[10]

,str2 =

("shanghai");

strcpy

(str1,str2)

;或者:

strcpy

(str1,

"shanghai");

即將str2的字串複製給了str1

(3)、strcmp:字串的比較

比較字串的大小只能使用這個函式

strcmp

(str1,str2)

>0;

//str1大

strcmp

(str1,str2)

<0;

//str2大

strcmp

(str1,str2)=0

;//str1和str2一樣大

(4)、strcat:字串的合併

例如:

char str1[10]

="shanghai "

;char str2[10]

="beijing"

;strcat

(str1,str2)

;printf

("%s"

,str1)

;輸出結果為:shanghai beijing

(5)、strev:字串的逆置

呼叫格式:

strrev

(str)

;

sprintf(str,"%d",n);

功能是把格式化的資料寫入字串str中。

sscanf(str,"%d",&n);

功能是從字串str中進行格式讀入

字串上行走

計算理工學院為了慶祝建校 12812 8 周年舉辦了乙個盛大的典禮。典禮上有一條 字串大道 由 l l 個寫在地上的字元組成。由於地上的字元很大,乙個人正常一步只能向前走乙個字元。小蒜和波瀚一開始分別站在字串大道第乙個字元和最後乙個字元所在的位置,從字串大道的兩端相向而行。已知小蒜每秒可以走 a a...

java學習之字串(上)

string greeing hello string s greet.substring 0,3 建立乙個由字元 hel 組成的字串 string expletive expletive string pg13 deleted string message expletive pg13 上述 將 ...

python學習之字串 上

字串 python 的字串被劃歸為不可變序列這一類別,意味著這些字串所包含的字元存在從左至右的位置順序,並且他們不可以在原處修改.字串常量 單引號 spam 雙引號 spam 三引號 spam.spam.轉義字元 s tp na om raw字串 r c new test.spam 單雙引號字串是一...