常用的字串功能函式
常用字串功能函式
1.連結函式
將字串src連線到des上,des最後面的'\0'被取消
#include
void Mystrcat(char *des,const char *src)
{
int i;
int j;
for(i=0;des[i]!='\0';i++);
des[i]=src[0];
for(j=1;src[j]!='\0';j++,i++)
{
des[i+1]=src[j];
}
des[i+1]='\0';
}
int main()
{
char des[10]="abc";
char src[]="def";
Mystrcat(des,src);
printf("%s",des);
return 0;
}
2.比較字串大小
若str1>str2,返回正數;若str1返回負數;若str1=str2,返回0
#include
int Mystrcmp(const char *str1,const char *str2)
{
int i=0;
if(str1[i]==str2[i])
{
i++;
}
else if(str1[i]>str2[i])
{
return 1;
}
else if(str1[i]
{
return -1;
}
else
{
return 0;
}
}
int main()
{
char str1[]="abc";
char str2[]="aafe";
printf("%d\n",Mystrcmp(str1,str2));
return 0;
}
3.字串拷貝
將字串str拷貝到字串des中
#include
void Mystrcpy(char *des,char *str)
{
int i;
for(i=0;str[i]!='\0';i++)
{
des[i]=str[i];
}
des[i]='\0';
}
int main()
{
char str[]="abcdefg";
char des[20];
Mystrcpy(des,str);
printf("%s",des);
return 0;
}
4.求字串有效字元個數(不包括'\0')
#include
int Mystrlen(const char *str)
{
int count=0;
for(int i=0;str[i]!='\0';i++)
{
count++;
}
return count;
}
int main()
{
char str[]="asdfg";
printf("%d\n",Mystrlen(str));
return 0;
}
注意:當遇到含有字串比較,拷貝,修改,連結,計算個數等要是用字串的庫函式,不能用> < =來比較,用+ -來計算。例”asdfg”是一個字串常量,字串常量是不允許修改的,一但修改,程式將會崩潰。所以如果想要修改字串,就要應用拷貝函式,將修改的字串複製到原來的字串上。
字串庫函式:標頭檔案引用 #include
連結函式Strcat :void *stract(char *str1,char *str2)
將字串str1連線到str2上,str2最後面的'\0'被取消
比較函式Strcmp :void *strcmp(char *str1,char *str2)
若str1>str2,返回正數;若str1返回負數;若str1=str2,返回0
拷貝函式Strcpy : void *strcpy(char *str1,char *str2)
將字串str2拷貝到字串str1中
統計字串函式Strlen : void * strlen(char *str)
統計字串str的有效字元個數,有效字元不包括’\0’