今天补完后续的函数
大写 小写转换函数
strlwr(a);小写转大写
strupr(a);大写转小写
函数封装表示
char dazxiao(char *s){
int i;
while(s[i]!='\0'){
if(s[i]>='A'&&s[i]<='Z'){
s[i] = s[i]+32;
}
i++;
}
return s;
}
char xiaozda(char *c){
int i;
for(i=0;i<20;i++){
if(c[i]>='a'&&c[i]<='z'){
c[i] = c[i]-32;
}
}
return c;
}
字符串转换函数
转成整型,
atoi(a);
长整型,
atol(a);
浮点型
atof(a);
转换为double类型
// char a[20] ="882577158qqwe";
// char *pa = NULL;
// printf("%p\n",a);
// double ret3 = strtod(a,&pa);
// printf("%p\n",pa);
// printf("%10f\n",ret3);
转换为long类型
// printf("%p\n",a);
// long ret4 = strtol(a,&pa,10);//10代表进制
// printf("%p\n",pa);
// printf("%ld\n",ret4);
无符号的long型
unsigned long ret5 = strtoul(a,&pa,10);
printf("%p\n",pa);
printf("%ld\n",ret5);
内存函数
1.memcpy 复制函数
与strcpy不同memcpy可以作用全部类型而strcpy只能作用字符型
char s[10] = "123456789";
char b[10] = "987654321";
memcpy(b,s,4);
函数内意味: s替换b前4位
2.移动函数 memmove
意味移动替换
// char *pa =NULL;
// char *pb =NULL;
// pa = malloc(sizeof(char)*20);
// pb = realloc(pa,sizeof(char)*50);
// printf("%p\n",pa);
// printf("%p\n",pb);
// strcpy(pb,"nssmnvma");
// strcpy(pa,"hello,boy");
// memmove(pa,pb,sizeof(char)*10);
// printf("%s\n",pa);
// free(pb);
// pb = NULL;
3.比较参数字节数 memcmp
前比后(字符数),大为正,小<=0
char *pa = NULL;
char *pb =NULL;
pa = malloc(sizeof(char)*20);
pb = realloc(pa,sizeof(char)*50);
memset(pa,0,10);
memset(pb,0,10);
strcpy(pa,"hello,boy");
strcpy(pb,"hahahsahhahh");
int ret = memcmp(pa,pb,6);
printf("%d\n",ret);
free(pa);
free(pb);
pa = NULL;
pb = NULL;