有時候需要用一些C庫函數但是,庫函數相似的太多了,記着記着就記憶混淆了,特此總結一下,願與諸君共享
#include “stdio.h”
sprintf函數
功能:向一個字元串内格式化輸入
char buf[1024]={0};
char buf1[5]="zxcv";
char buf2[5]="bnma";
sprintf(buf,"123 %s %s",buf1,buf2);
printf("%s\n",buf);
運作結果:123 zxcv bnma
sscanf函數
功能:從字元串中格式化輸出到另一個字元串
char buf[5]={0};
char buf1[20]="zxcvbmn";
char buf2[5]={0};
sscanf(buf1,"%s%s",buf,buf2);
printf("%s\n",buf);
printf("%s\n",buf2);
運作結果:
buf:zxcvbnm
buf2:
char buf[5]={0};
char buf1[20]="zxcvbmn";
char buf2[5]={0};
sscanf(buf1,"%s%s",buf,buf2);
printf("%s\n",buf);
printf("%s\n",buf2);
運作結果:
buf:zxcv
buf2:bnm
char buf[5]={0};
char buf1[20]="zxcvbmn";
char buf2[5]={0};
sscanf(buf1,"%2s%2s",buf,buf2);
printf("%s\n",buf);
printf("%s\n",buf2);
運作結果:
buf:zx
buf2:cv
類比sprintf和sscanf 簡單來說,sprintf可以多個字元串中截取合成任意一個字元串,sscanf隻能從一個已知的字元串中任意截取多個字元串,一裁多
#include <string.h>
strcpy函數和strncpy函數
函數功能:字元串拷貝
strcpy
char buf[10]={0};
char buf1[10]="zxcvbnm";
strcpy(buf,buf1);
printf("%s\n",buf);
運作結果:
buf:zxcvbnm
strncpy
char buf[10]={0};
char buf1[10]="zxcvbnm";
strncpy(buf,buf1,3);
printf("%s\n",buf);
運作結果:
buf:zxc
#include “string.h”
strcat函數與strncat函數
函數功能:字元串的追加寫
strcat
char buf1[10]="zxcv";
char buf2[5]="bnm";
strcat(buf1,buf2);
printf("%s\n",buf1);
運作結果:
buf1:zxcvbnm
char buf1[10]="zxcv";
char buf2[5]="bnm";
strncat(buf1,buf2,2);
printf("%s\n",buf1);
return 0;
運作結果:
buf1:zxcvbn
char buf1[10]="zxcv";
char buf2[5]="zxcv";
if(strcmp(buf1,buf2)==0)
{
printf("兩字元串相等\n");
}
else
{
printf("兩字元串不相等\n");
}
運作結果:
兩字元串相等
char buf1[10]="zxcv";
char buf2[5]="zxcv";
if(strncmp(buf1,buf2,3)==0)//隻比較前三個字元
{
printf("兩字元串相等\n");
}
else
{
printf("兩字元串不相等\n");
}
運作結果:
兩字元串相等