程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言字符串處理函數

C語言字符串處理函數

編輯:C語言基礎知識
C語言提供了豐富的字符串處理函數,例如字符串的輸入、輸出、合並、修改、比較、轉換、復制、搜索等,使用這些現成的函數可大大減輕編程的負擔。

用於輸入輸出的字符串函數,例如printfputsscanfgets等,使用時應包含頭文件stdio.h,使用其它字符串函數則應包含頭文件string.h

字符串長度函數strlen

strlen 是 string length 的縮寫,用來獲得字符串的長度。所謂長度,就是包含多少個字符(不包括字符串結束標志 '\0')。語法格式為:
strlen(arrayName);
strlen 將返回字符串的長度,它是一個整數。請看下面的例子:
#include <stdio.h>
#include <string.h>
int main(){
    char str[]="C language";
    int len = strlen(str);
    printf("The lenth of the string is %d\n", len);

    return 0;
}
運行結果:
The lenth of the string is 10

需要說明的是,strlen 會從字符串的第 0 個字符開始計算,直到遇到字符串結束標志 '\0'。將上面代碼中的 str 改為:
char str[]="C \0language";
那麼輸出結果就是:
The lenth of the string is 2

字符串連接函數 strcat

strcat 是 string catenate 的縮寫,意思是把兩個字符串拼接在一起,語法格式為:
strcat(arrayName1, arrayName2);
arrayName1、arrayName2 為需要拼接的字符串。

strcat 將把 arrayName2 連接到 arrayName1 後面,並刪去 arrayName1 最後的結束標志 '\0'。這就意味著,arrayName1 的長度要足夠,必須能夠同時容納 arrayName1 和 arrayName2,否則會越界。

strcat 返回值為 arrayName1 的首地址。請看下面的例子:
#include <stdio.h>
#include <string.h>
int main(){
    char str1[40]="My name is ";
    char str2[20];
    printf("Input your name:");
    gets(str2);
    strcat(str1,str2);
    puts(str1);

    return 0;
}
運行結果:
Input your name:xiao p
My name is xiao p

字符串復制函數strcpy

strcpy 是 string copy 的縮寫,意思是字符串復制,語法格式為:
strcpy(arrayName1, arrayName2);
strcpy 會把 arrayName2 中的字符串拷貝到 arrayName1 中,串結束標志 '\0' 也一同拷貝。請看下面的例子:
#include <stdio.h>
#include <string.h>
int main(){
    char str1[15], str2[]="C Language";
    strcpy(str1, str2);
    puts(str1);
    printf("\n");

    return 0;
}
運行結果:
C Language

strcat 要求 arrayName1 要有足夠的長度,否則不能全部裝入所拷貝的字符串。

字符串比較函數strcmp

strcmp 是 string compare 的縮寫,意思是字符串比較,語法格式為:
strcmp(arrayName1, arrayName2);
arrayName1 和 arrayName2 是需要比較的兩個字符串。

字符本身沒有大小之分,strcmp() 以各個字符對應的 ASCII 碼值進行比較。strcmp() 從兩個字符串的第 0 個字符開始比較,如果它們相等,就繼續比較下一個字符,直到遇見不同的字符,或者到字符串的末尾。

返回值:若 arrayName1 和 arrayName2 相同,則返回0;若 arrayName1 大於 arrayName2,則返回大於 0 的值;若 arrayName1 小於 arrayName2,則返回小於0 的值。

【示例】對4組字符串進行比較。
#include <stdio.h>
#include <string.h>
int main(){
    char *a = "aBcDeF";
    char *b = "AbCdEf";
    char *c = "aacdef";
    char *d = "aBcDeF";
    printf("strcmp(a, b) : %d\n", strcmp(a, b));
    printf("strcmp(a, c) : %d\n", strcmp(a, c));
    printf("strcmp(a, d) : %d\n", strcmp(a, d));

    return 0;
}
運行結果:
strcmp(a, b) : 1
strcmp(a, c) : -1
strcmp(a, d) : 0
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved