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;}