700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Day 23 一些对字符串操作的函数 strlwr strupr atoi atol atof strtod strtol strtloul memcpy memove memcmp

Day 23 一些对字符串操作的函数 strlwr strupr atoi atol atof strtod strtol strtloul memcpy memove memcmp

时间:2022-07-26 14:06:13

相关推荐

Day 23 一些对字符串操作的函数 strlwr strupr  atoi atol atof strtod strtol strtloul memcpy  memove  memcmp

1.strlwr strupr

char *strlwr(char *s1) 大写转小写 char *strupr(char *s1) 小写转大写

用了函数就可以将字符串中的字母按照自己想要的方式转换了

自己写函数对这两个函数进行实现

char *strlwr_s(char *src){int i = 0;while(src[i] != '\0'){if(src[i] >= 'A' && src[i] <= 'Z'){src[i] += 32;}i++;}return src;} char *strupr_s(char *src){int i = 0;while(src[i] != '\0'){if(src[i] >= 'a' && src[i] <= 'z'){src[i] -= 32;}i++;}return src;}

2.atoi atol atof

把字符串转换成整数的函数,参数是要转换的字符串

atoi(const char *_str);

把字符串转换成长整型

atol(const char *_str);

把字符串转换成浮点型

atof(const char *_str);

int main(){char str[20] = "123ghs45";int ret = atoi(str);printf("%d\n", ret);long ret1 = atol(str);printf("%ld\n", ret1);double ret2 = atof(str);printf("%10f\n", ret2);return 0;}

这个函数只将第个数字型子串输出,后面就不管了

3.strtod

转换为实型 碰到数字输出,碰到字符停止并用指针指向这个字符

#include<stdio.h>#include<stdlib.h>#include<string.h>//转换为实型 碰到整型输出,碰到字符停止并用指针指向这个字符 int main(){char str[64] = "12ghs345";char *pch = NULL;printf("%p\n", str);double ret = strtod(str, &pch);printf("%s\n", pch);printf("%f\n", ret);return 0;}

4.strtol,strtloul

将字符型的数,变成长整型和不带符号的长整型

#include<string.h>#include<stdlib.h>int main(){char str[64] = "125dsjfd55";char *pch = NULL;printf("%p\n", str);long ret = strtol(str, &pch, 10);//有符号long类型 printf("%p\n", pch);printf("%ld\n", ret);unsigned long ret1 = strtoul(str, &pch, 10);printf("%p\n", pch);printf("%u\n", ret1);return 0;}

5. memcpy, memove, memcmp

内存对字符串进行拷贝、移动、比较操作

#include<stdio.h>#include<string.h>#include<stdlib.h>//memcpy 对任意数据类型进行拷贝,拷贝多少,在前面覆盖多少,后面的内容不变 //memoveint main(){//char src[20] = "hello world";//char dest[30] = "BSP2208calss";//int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//int brr[20] = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}; //memcpy(brr, arr, sizeof(int) * 10);//for(int i = 0; i < 20; i++)//{//printf("%d,", brr[i]);//}//char *pa = NULL;//char *pb = NULL;//pa = (char *)malloc(sizeof(char) * 30);//pb = (char *)malloc(sizeof(char) * 30);//memset(pa, 0, sizeof(char) * 20);//memset(pb, 0, sizeof(char) * 30);////pa = "hello world";//pb = "BSP2208class";////memcpy(pb, pa, sizeof(char) * strlen(pa));////printf("%s\n", pb); //free(pa);//free(pb);//////pa = NULL;//pb = NULL;//char *pa = NULL;//char *pb = NULL;//pa = malloc(sizeof(char) * 20);//pb = malloc(sizeof(char) * 50);////printf("%p\n", pa);//printf("%p\n", pb);////strcpy(pa, "hello ");//strcpy(pb, "BSP2208class");//memmove(pb, pa, sizeof(char) * 6);//printf("%s\n", pb);////free(pb);//free(pa);//pb = NULL;//pa = NULL;char *pa = NULL;char *pb = NULL;pa = malloc(sizeof(char) * 20);pb = malloc(sizeof(char) * 50);memset(pa, 0, 10);memset(pb, 0, 10);strcpy(pa, "BSP220llo world");strcpy(pb, "BSP22e8");int ret = memcmp(pa, pb, 6);printf("%d\n", ret);free(pa);free(pb);pa = NULL;pb = NULL;return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。