C 字符串處理的一些基本函數(shù)

gets
獲取用戶從鍵盤輸入的字符串.

例子

#include <stdio.h>
int main(){
    char str[100];
    printf("Input Something: ");
    gets(str);
    puts(str);

    return 0;
}

運行結(jié)果:

Input Something: Hello World
Hello World

當(dāng)輸入的字符串中含有空格時,輸出仍為全部字符串书释。說明 gets 函數(shù)并不以空格作為字符串輸入結(jié)束的標(biāo)志,而只以回車作為輸入結(jié)束.

strlen
將返回字符串的整數(shù)長度赊窥。

例子

#include <stdio.h>
#include <string.h>
int main(){
    char str="hello world";
    int len = strlen(str);
    printf("The lenth of the string is %d\n", len);

    return 0;
}

運行結(jié)果:

The lenth of the string is 11

需要說明:

  1. 要添加 #include<string.h>
  2. strlen 會從字符串的第 0 個字符開始計算爆惧,直到遇到字符串結(jié)束標(biāo)志 '\0'。

strcat

把兩個字符串拼接在一起

例子

#include <stdio.h>
#include <string.h>
int main(){
    char str1[40]="welcome back ";
    int str2[20];
    printf("Input your name:");
    gets(str2);
    strcat(str1,str2);
    puts(st1);

    return 0;
}

運行結(jié)果:

Input your name:hejing
welcome back hejing

需要說明:

  1. strcat 將把 str2 連接到 str1后面锨能,并刪去 str1 最后的結(jié)束標(biāo)志 '\0'扯再。這就意味著,str1 的長度要足夠址遇,必須能夠同時容納 str1 和 str2熄阻,否則會越界.
  2. strcat 返回值為 str1 的首地址

**strcpy **
字符串復(fù)制

例子

#include <stdio.h>
#include <string.h>
int main(){
    char str1[15], str2="C Language";
    strcpy(str1, str2);
    puts(str1);
    printf("\n");

    return 0;
}

運行結(jié)果:

C Language

需要說明

  1. strcpy 會把 str2中的字符串拷貝到 str1中,串結(jié)束標(biāo)志 '\0' 也一同拷貝倔约。
  2. 要求str1有足夠長度秃殉,否則不能全部裝入所拷貝的字符串。

strtok
分解字符串為一組標(biāo)記串浸剩。s為要分解的字符串钾军,delim為分隔符字符串。

例子

/* strtok example */
#include <stdio.h>
#include <string.h>

int main (void)
{
    char str[] = "- This, a sample string.";
    char *pch;
    printf("Splitting string \"%s\" into tokens:\n", str);
    pch = strtok(str," ,.-");
    while (pch != NULL)
    {
        printf("%s\n", pch);
        pch = strtok(NULL, " ,.-");
    }
    printf("at the end: %s", str);
    return 0;
}

運行結(jié)果

Splitting string "- This, a sample string." into tokens:
This
a
sample
string
the end: - This

說明:strtok()用來將字符串分割成一個個片段绢要。當(dāng)strtok()在參數(shù)s的字符串中發(fā)現(xiàn)到參數(shù)delim的分割字符時則會將該字符改為 \0 字符吏恭。在第一次調(diào)用時,strtok()必需給予參數(shù)s字符串重罪,往后的調(diào)用則將參數(shù)s設(shè)置成NULL砸泛。每次調(diào)用成功則返回被分割出片段的指針。當(dāng)沒有被分割的串時則返回NULL蛆封。所有delim中包含的字符都會被濾掉,并將被濾掉的地方設(shè)為一處分割的節(jié)點勾栗。

strstr
從字符串 str1 中尋找 str2 第一次出現(xiàn)的位置(不比較結(jié)束符NULL)惨篱,如果沒找到則返回NULL。

例子

/* strstr example */
#include <stdio.h>
#include <string.h>

int main ()
{
    char str[] = "This is a simple string";
    char *pch;
    
    pch = strstr(str, "simple");
    strncpy(pch, "sample", 7);
    
    puts(pch);
    puts(str);
    return 0;
}

運行結(jié)果

sample string
This is a sample string

其他一些函數(shù)

strncpy

函數(shù)原型charstrncpy(chardest,char*src,size_tn);
復(fù)制字符串src中的內(nèi)容(字符围俘,數(shù)字砸讳、漢字....)到字符串dest中,復(fù)制多少由size_tn的值決定界牡。

strcmp

原型 int strcmp ( const char * str1, const char * str2 );
功能:比較字符串 str1 和 str2簿寂。

說明:

當(dāng)s1<s2時,返回值<0

當(dāng)s1=s2時宿亡,返回值=0

當(dāng)s1>s2時常遂,返回值>0

...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挽荠,隨后出現(xiàn)的幾起案子克胳,更是在濱河造成了極大的恐慌平绩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漠另,死亡現(xiàn)場離奇詭異捏雌,居然都是意外死亡,警方通過查閱死者的電腦和手機笆搓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門性湿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人满败,你說我怎么就攤上這事肤频。” “怎么了葫录?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵着裹,是天一觀的道長。 經(jīng)常有香客問我米同,道長骇扇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任面粮,我火速辦了婚禮少孝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘熬苍。我一直安慰自己稍走,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布柴底。 她就那樣靜靜地躺著婿脸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柄驻。 梳的紋絲不亂的頭發(fā)上狐树,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音鸿脓,去河邊找鬼抑钟。 笑死,一個胖子當(dāng)著我的面吹牛野哭,可吹牛的內(nèi)容都是我干的在塔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拨黔,長吁一口氣:“原來是場噩夢啊……” “哼蛔溃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤城榛,失蹤者是張志新(化名)和其女友劉穎揪利,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狠持,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡疟位,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喘垂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甜刻。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖正勒,靈堂內(nèi)的尸體忽然破棺而出得院,到底是詐尸還是另有隱情,我是刑警寧澤章贞,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布祥绞,位于F島的核電站,受9級特大地震影響鸭限,放射性物質(zhì)發(fā)生泄漏蜕径。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一败京、第九天 我趴在偏房一處隱蔽的房頂上張望兜喻。 院中可真熱鬧,春花似錦赡麦、人聲如沸朴皆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遂铡。三九已至,卻和暖如春晶姊,著一層夾襖步出監(jiān)牢的瞬間忧便,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工帽借, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人超歌。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓砍艾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巍举。 傳聞我的和親對象是個殘疾皇子脆荷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

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