字符串的常用函數
阿新 • • 發佈:2019-02-24
開始 顯示 () 省份 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; }
字符串的常用函數