1. 程式人生 > >字符串的常用函數

字符串的常用函數

開始 顯示 () 省份 st2 技術分享 inf image 不出

1、strlen

格式:變量名1=strlen(變量名2); //變量名1註意要先定義 int 變量名1;

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8];
    int len;
    printf("請輸入一個字符串:");
    gets(a);
    len = strlen(a);
    printf("字符串的長度為:%d\n", len);
    
    return 0;
}

技術分享圖片

2、strcpy

格式:strcpy(a,b); //表示把b中的內容復制到a中去,第二個參數是源字符串

情況一:(復制前後均沒有越界情況)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[16]="China";
    char b[16]="Chinese";
    strcpy(a, b);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

技術分享圖片

情況二:(復制後發生越界,很危險)

#include <stdio.h>
#include <string.h>
int main()
{
    
char a[8]="China"; char b[16]="Chinese people"; strcpy(a, b); printf("a=%s\n", a); printf("b=%s\n",b); return 0; }

情況三:(復制源比較短,復制源的字符串結束符也會復制過去)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[16]="Chinese";
    char b[16]="China";
    strcpy(a, b);
    printf(
"a=%s\n", a); printf("b=%s\n",b); return 0; }

技術分享圖片

3、strncpy

能夠有效防止越界的問題

格式:strncpy(a,b,n); //表示從b中復制n個字符到a中

情況一:(要拷貝的字符個數小於等於源字符串的長度)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8]="China";
    char b[8]="abcde";
    strncpy(a, b,3);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

技術分享圖片

情況二:(要拷貝的字符個數大於源字符串的長度:沒有的用0補齊)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8]="China";
    char b[8]="abc";
    strncpy(a, b,5);//拷過去之後a=abc00
    printf("a=%s\n", a);//由於是以字符串的形式打印,所以即使有數字也顯示不出來
    printf("b=%s\n",b);
    printf("a[3]=%d  a[4]=%d\n", a[3], a[4]);//以整數的形式看是否能打印出來
    
    return 0;
}

技術分享圖片

4、strcat

格式:strcat(dest1,dest2); //表示把dest2的內容拼接到dest1後面去,dest2的內容從dest1的字符串結束符開始覆蓋

#include <stdio.h>
#include <string.h>
int main()
{
    char pro[32];
    char city[32];
    printf("請輸入您的省份:");
    gets(pro);
    printf("請輸入您的城市:");
    gets(city);
    strcat(pro, city);
    printf("您所在地區為:%s\n", pro);
    printf("pro=%s\n", pro);
    printf("city=%s\n", city);

    return 0;
}

技術分享圖片

字符串的常用函數