字符的一些操作

在C里肛鹏,沒有JAVA里的String這個(gè)東西,用來表示字符串的脂矫,都是用char數(shù)組來表示

void main(){

? ?char str[] = { 'c','a','t',"\0" };

? ? printf("%s\n",str);

? ?str[0] = 'a';

? ?printf("%s", str);

? ?system("pause");

}

這是一種寫法枣耀,申明一個(gè)char數(shù)組,數(shù)組最后一位\0表示結(jié)束符庭再,如果沒有這個(gè)結(jié)束符捞奕,打印出來的東西,會(huì)有亂碼拄轻。 這種寫法缝彬,是可以改更字符串的。

當(dāng)然哺眯,下面介紹的寫法,是可以不要結(jié)束符的:

void main(){

? ?char str[4] = { 'c','a','t'};

? ?printf("%s\n",str);

? ?str[0] = 'a';

? ?printf("%s", str);

? ?system("pause");

}

這樣先定義好長度扒俯,并且大于實(shí)際的長度奶卓,就不會(huì)有亂碼。

當(dāng)然撼玄,還有一種更普遍的寫法

void main(){

? ?char* str = "helloWorld";

? ?printf("%s\n",str);

? ?system("pause");

}

通過指針夺姑,就更像是JAVA的寫法了。不用靠數(shù)組掌猛。且和int組數(shù)一樣盏浙,這個(gè)char字符串,在內(nèi)存上是線性連續(xù)的荔茬,由于char是一個(gè)字節(jié)废膘,故每個(gè)單詞的內(nèi)存地址都是向右移了一位。?

因此用指針的寫法慕蔚,是可以靠指針的加減法丐黄,來達(dá)到截取字符的,如

void main(){

? ?char* str = "helloWorld";

? ?str += 3;

? ?while (*str){

? ? ? printf("%c", *str);

? ? ? str++;

}

system("pause");

}

但這樣寫孔飒,是不能更改字符串的灌闺,就是不能有 str[0]='a';

故這里不需要更改字符時(shí),就用指針形式

如果需要更改坏瞄,就用數(shù)組形式

順便提一下桂对,如果只輸出一個(gè)char,則用的輸出符是,%c,若是數(shù)組鸠匀,則%s

再說兩個(gè)復(fù)制字符串的方法,在JAVA里面就是a+b蕉斜,在C中沒有這種搞法。具體方法如下

void main(){

? ?char dest[50];

? ?char* a = "china";

? ?char* b = "is powerful";

? ?strcpy(dest,a);

? ?printf("%s\n",dest);

? ?strcat(dest,b);

? ?printf("%s\n", dest);

? ?system("pause");

}

strcpy(dest,a); 就是將a字符串復(fù)制到dest中,但不保留dest原來的字符蛛勉。strcat鹿寻,就是復(fù)制,且保留原來的诽凌!就是作字符串的拼接毡熏。這樣最終輸出就是china is powerful

再說一下查找第一個(gè)字符的方法

void main(){

? ?char* a = "china";

? ?char* p=strchr(a,'i');

? ?if (p){

? ? ? printf("找到了,存在侣诵,內(nèi)存地址為%#x",p);

? ?}else{

? ? ? printf("沒有找到");

}

system("pause");

}

char* p=strchr(a,'i'); 就是找到字符數(shù)組中第一個(gè)含有i的指針痢法! 這里是存在的,故*p就是i

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杜顺,一起剝皮案震驚了整個(gè)濱河市财搁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躬络,老刑警劉巖尖奔,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異穷当,居然都是意外死亡提茁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門馁菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茴扁,“玉大人,你說我怎么就攤上這事汪疮∏突穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵智嚷,是天一觀的道長卖丸。 經(jīng)常有香客問我,道長盏道,這世上最難降的妖魔是什么坯苹? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮摇天,結(jié)果婚禮上粹湃,老公的妹妹穿的比我還像新娘。我一直安慰自己泉坐,他們只是感情好为鳄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腕让,像睡著了一般孤钦。 火紅的嫁衣襯著肌膚如雪歧斟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天偏形,我揣著相機(jī)與錄音静袖,去河邊找鬼。 笑死俊扭,一個(gè)胖子當(dāng)著我的面吹牛队橙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萨惑,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼捐康,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了庸蔼?” 一聲冷哼從身側(cè)響起解总,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姐仅,沒想到半個(gè)月后花枫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掏膏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年劳翰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壤追。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖供屉,靈堂內(nèi)的尸體忽然破棺而出行冰,到底是詐尸還是另有隱情,我是刑警寧澤伶丐,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布悼做,位于F島的核電站,受9級(jí)特大地震影響哗魂,放射性物質(zhì)發(fā)生泄漏肛走。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一录别、第九天 我趴在偏房一處隱蔽的房頂上張望朽色。 院中可真熱鬧,春花似錦组题、人聲如沸葫男。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梢褐。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盈咳,已是汗流浹背耿眉。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鱼响,地道東北人鸣剪。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像热押,于是被迫代替她去往敵國和親西傀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第1章 第一個(gè)C程序第2章 C語言基礎(chǔ)第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設(shè)計(jì)第5章 條件結(jié)構(gòu)程序設(shè)計(jì)第6章...
    小獅子365閱讀 10,655評(píng)論 3 71
  • 在c語言中,字符串是用字符數(shù)組來存儲(chǔ)的(并不像c++或者java等語言中有單獨(dú)的string類型)牙寞, 存放時(shí)在字符...
    朱森閱讀 1,567評(píng)論 0 2
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型饺鹃。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu)间雀; ...
    朱森閱讀 3,446評(píng)論 3 44
  • 一悔详、字符串操作 strcpy(p, p1) 復(fù)制字符串 strncpy(p, p1, n) 復(fù)制指定長度字符串 s...
    JaiUnChat閱讀 1,659評(píng)論 0 7
  • Java 官方為開發(fā)者提供了很多功能強(qiáng)大的類,這些類被分別放在各個(gè)包中惹挟,隨JDK一起發(fā)布茄螃,稱為Java類庫或Jav...
    李序鍇閱讀 778評(píng)論 0 0