【C語言】字串處理自定義函式
阿新 • • 發佈:2018-11-06
1、字串求長度
#include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(const char *str) { int i; for(i=0;*(str++)!='\0';i++); return i; } int main() { char a[100]; scanf("%s",a); printf("%d\n",Mystrlen1(a)); printf("%d\n",Mystrlen2(a)); }
執行結果:
2、字串拷貝(複製)
#include <stdio.h> void Mystrcpy1(char *des,char *src) { while(*src!='\0') { *(des++)=*(src++); } *des='\0'; } void Mystrcpy2(char *des,char *src) { int i; for(i=0;*src!='\0';i++) { *(des++)=*(src++); } *des='\0'; } void Mystrcpy3(char *des,char *src) { while( *(des++)=*(src++)); } int main() { char a[100]="abcd"; char b[100]="123"; Mystrcpy1(a,b); printf("%s\n",a); char c[100]="abcd"; char d[100]="123"; Mystrcpy2(c,d); printf("%s\n",c); char e[100]="abcd"; char f[100]="123"; Mystrcpy3(e,f); printf("%s\n",e); }
執行結果:
3、字串連結
#include <stdio.h>
void Mystrcat(char *des,const char *src)
{
while(*des!='\0')
{
des++;
}
while(*src!='\0')
{
*des++=*src++;
}
*des='\0';
}
int main()
{
char a[100]="abcd";
char b[100]="123";
Mystrcat(a,b);
printf("%s\n",a);
}
執行結果:
4、字串比較
#include <stdio.h>
int Mystrcmp(const char *str1,const char *str2)
{
while(*str1==*str2 && *str1!='\0')
{
str1++;
str2++;
}
if(*str1=='\0'&&*str2=='\0')
{
return 0;
}
else
{
return *str1-*str2;
}
}
int main()
{
printf("%d\n",Mystrcmp("abc","ab"));
printf("%d\n",Mystrcmp("ab","abc"));
printf("%d\n",Mystrcmp("abc","abd"));
printf("%d\n",Mystrcmp("ab","ab"));
printf("%d\n",Mystrcmp("abad","abc"));
}
執行結果: