1. 程式人生 > >C語言string家族函式使用說明及範例

C語言string家族函式使用說明及範例

轉自:http://blog.csdn.net/sunnylgz/article/details/6677103

PS:專案中從來沒離開過string家族函式的使用,本來想把自己經常用到的一些str函式整理出來的,發現CSDN中已經有前輩做了這個工作,相當感激。為節省時間,就直接搬過來了,就當作是一次複習,好東西收藏起來,以備下次查閱之需微笑

@函式名稱:strdup

函式原型:char *strdup(const char *s)

函式功能:  字串拷貝,目的空間由該函式分配  

函式返回:  指向拷貝後的字串指標 

引數說明:  src-待拷貝的源字串 

所屬檔案:  <string.h>

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. #include <alloc.h> 
  4. int main()   
  5. {   
  6.   char *dup_str, *string="abcde";   
  7.   dup_str=strdup(string);   
  8.   printf("%s", dup_str);   
  9.   free(dup_str);   
  10.   return 0;   
  11. }  

@函式名稱:  strcpy 

函式原型:  char* strcpy(char* str1,char* str2);

 

函式功能:  把str2指向的字串拷貝到str1中去 

函式返回:  返回str1,即指向str1的指標 

引數說明: 

所屬檔案:  <string.h>

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. int main()   
  4. {   
  5.   char string[10];   
  6.   char *str1="abcdefghi";   
  7.   strcpy(string,str1);   
  8.   printf("the string is:%s\n",string);   
  9.   return 0;   
  10. }  

@函式名稱:  strncpy 

函式原型:  char *strncpy(char *dest, const char *src,intcount) 

函式功能:  將字串src中的count個字元拷貝到字串dest中去 

函式返回:  指向dest的指標 

引數說明:  dest-目的字串,src-源字串,count-拷貝的字元個數 

所屬檔案:  <string.h>

  1. #include<stdio.h> 
  2. #include<string.h> 
  3. int main()   
  4. {   
  5.    char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's
  6.    char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's
  7.    puts(dest);  
  8.    strncpy(dest, src, 10);  
  9.    puts(dest);    
  10.    return0;   
  11. }  
輸出:
  1. /******************************************* 
  2. aaaaaaaaaaaaaaaaaaaa 
  3. bbbbbbbbbbaaaaaaaaaa 
  4. *******************************************/
注意:strncpy只複製指定長度的字元,不會自動在末尾加'\0'。若指定長度超過源字串長度,不夠的部分補‘\0’,

@函式名稱:  strcat 

函式原型:  char* strcat(char * str1,char * str2); 

函式功能:  把字串str2接到str1後面,str1最後的'\0'被取消 

函式返回:  str1 

引數說明: 

所屬檔案:  <string.h>

  1. #include <stdio.h> 
  2. #include <string.h>
  3. int main()   
  4. {   
  5.   char buffer[80];  
  6.   strcpy(buffer,"Hello ");   
  7.   strcat(buffer,"world");   
  8.   printf("%s\n",buffer);   
  9.   return 0;   
  10. }  

@函式名稱:  strncat 

函式原型:  char *strncat(char *dest, const char *src, size_t maxlen) 

函式功能:  將字串src中前maxlen個字元連線到dest中 

函式返回: 

引數說明: 

所屬檔案:  <string.h>

  1. #include <stdio.h> 
  2. #include <string.h>
  3. char buffer[80];  
  4. int main()   
  5. {   
  6.   strcpy(buffer,"Hello ");   
  7.   strncat(buffer,"world",8);   
  8.   printf("%s\n",buffer);   
  9.   strncat(buffer,"*************",4);   
  10.   printf("%s\n",buffer);   
  11.   return 0;   
  12. }  
注意:與strncpy不同的是,strncat會自動在末尾加‘\0’,若指定長度超過源字串長度,則只複製源字串長度即停止

@函式名稱:  strcmp 

函式原型:  int strcmp(char * str1,char * str2); 

函式功能:  比較兩個字串str1,str2. 

函式返回:  str1<str2,返回負數;str1=str2,返回 0;str1>str2,返回正數.  

引數說明: 

所屬檔案:  <string.h>

  1. #include <string.h> 
  2. #include <stdio.h> 
  3. int main()   
  4. {   
  5.   char *buf1="aaa", *buf2="bbb",*buf3="ccc";   
  6.   int ptr;   
  7.   ptr=strcmp(buf2, buf1);   
  8.   if(ptr>0)   
  9.     printf("buffer 2 is greater thanbuffer 1\n");   
  10.   else
  11.     printf("buffer 2 is less thanbuffer 1\n");   
  12.   ptr=strcmp(buf2, buf3);   
  13.   if(ptr>0)   
  14.     printf("buffer 2 is greater thanbuffer 3\n");   
  15.   else
  16.     printf("buffer 2 is less thanbuffer 3\n");   
  17.   return 0;   
  18. }  

@函式名稱:  strncmp 

函式原型:  int strncmp(char *str1,char *str2,int count) 

函式功能:  對str1和str2中的前count個字元按字典順序比較 

函式返回:  小於0:str1<str2,等於0:str1=str2,大於0:str1>str2 

引數說明:  str1,str2-待比較的字串,count-比較的長度 

所屬檔案:  <string.h>

  1. #include<string.h> 
  2. #include<stdio.h> 
  3. int main()   
  4. {   
  5.    char str1[] ="aabbc";//
  6.    char str2[] = "abbcd";//
  7.    //為使測試程式更簡練,此處假定了strncmp只返回-1,0,1三個數
  8.    char res_info[] = {'<','=','>'};  
  9.    int res;  
  10.    //前1個字元比較
  11.    res = strncmp(str1, str2, 1);  
  12.    printf("1:str1%c str2\n", res_info[res+1]);  
  13.     //前3個字元比較
  14.    res = strncmp(str1, str2, 3);  
  15.    printf("3:str1%c str2\n", res_info[res+1]);  
  16. }  

輸出:

  1. /**************************************** 
  2. 1:str1= str2 
  3. 相關推薦

    C語言string家族函式使用說明範例

    轉自:http://blog.csdn.net/sunnylgz/article/details/6677103 PS:專案中從來沒離開過string家族函式的使用,本來想把自己經常用到的一些str函式整理出來的,發現CSDN中已經有前輩做了這個工作,相當感激。為節省時

    c/c++語言-string.h函式

    string.h 頭定義了一個變數的型別,操作字元陣列的一個巨集觀和各種功能。庫變數以下是在頭string.h中定義的變數型別:S.N. 變數和說明1 size_t 這是一個無符號整數型別的sizeof關鍵字的結果。庫巨集以下是在頭string.h中定義的巨集:S.N. 巨集

    C++中string常用函式用法總結

    標準c++中string類函式介紹 注意不是CString 之所以拋棄char*的字串而選用C++標準程式庫中的string類,是因為他和前者比較起來,不必 擔心記憶體是否足夠、字串長度等等,而且作為一個類出現,他整合的操作函式足以完成我們大多數情況下(甚至是1

    c語言各類庫函式的含義用法

    在C語言中 strcat、strcmp、strcpy、strlen、strchr 和 strstr函式都被包含在<string.h>標頭檔案中,也就是要呼叫它們時要在程式前面包含<string.h>標頭檔案,也就是寫這個語句:#include<

    C語言string.h中常用字元函式介紹

    strcpy 函式名: strcpy 功 能: 拷貝一個字串到另一個 用 法: char *strcpy(char *destin, char *source); 程式例: #include <stdio.h> #include <string.h> int main(v

    C語言string.h庫中的常用函式

    memmove用於從src拷貝count個位元組到dest,如果目標區域和源區域有重疊的話,memmove能夠保證源串在被覆蓋之前將重疊區域的位元組拷貝到目標區域中。但複製後src內容會被更改。但是當目標區域與源區域沒有重疊則和memcpy函式功能相同。

    大端儲存和小端儲存基於c語言的測試函式

    大端模式是什麼?小端模式又是什麼?對系統哪些方面有影響?又如何來檢視我的電腦到底是大端還是小端呢?這些問題在文中都將獲得解決,一起來看看吧。首先我們來介紹一下概念:大端模式(Big_endian):字資料的高位元組儲存在低地址中,而字資料的低位元組儲存在高地址中。如下圖。小端

    C語言-----string.h標頭檔案中相關字串函式的模擬實現

    strlen:用途:Get the length of a string.獲取字串長度。函式原型:size_t strlen( const char *string ); size_t表示無符號的意思,長度值肯定是無符號的。源字串以'\0'作為結束標誌。strlen函式返回的

    《head first c》學習筆記C語言有用的函式

    動態庫及靜態庫 動態庫是在執行時連結程式,靜態庫一旦連結,就不能改變。 #include <>查詢包括/usr/include在內的標準目錄 gcc -fPIC 令目的碼位置無關,例如: gcc -c -fPIC test.c -o test.o(因為標頭檔案

    C語言--“string.h”庫的幾個函式

    標頭檔案:#include<string.h>string .h 標頭檔案定義了一個變數型別、一個巨集和各種操作字元陣列的函式。1,變數型別size_t 這是無符號整數型別,它是 sizeof 關鍵字的結果。2,巨集定義NULL這個巨集是一個空指標常量的值。3,各

    檔案操作,檔案操作時的許可權設定,快速實現檔案拷貝,C語言常用IO函式

    定義一個檔案型別指標。用於儲存開啟檔案後的指標。 C語言中可以用 gets(char *str) 來輸入一行(包括空格)。 FILE *p = fopen("檔名",“開啟的許可權”); 其中許可權可以是w ,此時如果檔案不存在會自動建立,如果存在就會自動覆蓋(內容); 許

    C語言——求最大公約數最小公倍數

    href 百度百科 代碼 ret temp max min 常見算法 urn 基本概念 最小公倍數:兩個或多個整數公有的倍數叫做它們的公倍數。整數a,b的最小公倍數記為[a,b],同樣的,a,b,c的最小公倍數記為[a,b,c],多個整數的最小公倍數也有同樣的記號。 最大

    C語言string.h常用函數總結

    字節 num type rcp 處的 不同 不可 tina 拷貝 void *memcpy(void *dest, const void *src, size_t n); 從源src所指的內存地址的起始位置開始拷貝n個字節到目標dest所指的內存地址的起始位置中. void

    C語言版數據結構算法_快速排序

    log div 結構 gpo value val 結束 開始 c語言 /* 參數: a:數組首地址 left:需要排序的數組的開始位置 right:需要排序的數組的結束位置 */ void qSort(int *a,int left,int right){

    C語言幾個函式用法小結

    1.char *ultoa(unsigned long value,char *string,int radix)  將無符號整型數value轉換成字串並返回該字串,radix為轉換時所用基數  2.char *ltoa(long value,char *string,i

    C語言中變量名函數名的命名規則與駝峰命名法

    char 都是 this 表示 介紹 程序設計 代碼 必須 不同的 一、C語言變量名的命名規則:(可以字母,數字,下劃線混合使用) 1. 只能以字母或下劃線開始;2. 不能以數字開始;3. 一般小寫;4. 關鍵字不允許用(eg:int float=2//error fl

    C語言實現魔方陣程式碼解析

    問題描述編寫程式,實現如下表所示的5-魔方陣。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22

    c語言自定義函式,10月28日總結

    現在時間23點34分,我想看看我幾點能完成   今天總結自定義函式的使用,先從最基礎的地方開始 1.形參實參 在定義函式的時候,函式大多數都有引數,在被主調函式需要傳遞資料給函式的引數 函式定義時用的變數叫形參 傳遞給函式的中形參值或變數叫實參 int m

    (C/C++學習)14.C語言字串處理函式(二)

    說明:上節著重解釋了字串處理的庫函式處理,這節將針對一些常用的需求,進行非庫函式的處理。 一.去除某一個字串中的某個字元 1.去除字串右邊的空格 1 void trimStrRightSpace(char * str) 2 { 3 while(*str) 4 s

    C++中string erase 函式的使用 C++中string erase函式的使用

    轉 C++中string erase函式的使用 2017年04月05日 21:02:17 It_BeeCoder 閱讀數:4286 更多