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 对任意数据类型进行拷贝,拷贝多少,在前面覆盖多少,后面的内容不变
//memove
int 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;
}