天天看點

C語言常用函數總結

有時候需要用一些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");
   }
運作結果:
   兩字元串相等