1. 库函数将数字转换成字符串
函数名 | 作用 |
itoa | 整型数转成字符串 |
ltoa | 长整型转成字符串 |
ultoa | 无符号长整形转成字符串 |
gcvt | 浮点型数转成字符串 |
ecvt | 双精度浮点型数转成字符串,转换结果不包括十进制小数点 |
fcvt | 以指定位数为转换精度,其余同ecvt |
atoi | 字符串转成整型 |
2. 数字字符串转换成数字
函数名称 | 作用 |
atof | 字符串转成双精度浮点型数 |
atoi | 字符串转成整型数 |
atol | 字符串转成长整型数 |
strtod | 字符串转成双精度浮点数,并报告不能被转换的剩余数字 |
strtol | 字符串转成长整型,并报告不能被转成的剩余数字 |
strtoul | 字符串转成无符号长整形,并报告不能被转成的剩余数字 |
3. strcpy与memcpy
strcpy | memcpy | |
复制内容 | 只能是字符串 | 字符串、结构体、数组、类等等 |
复制方式 | 不需要指定长度,遇‘\0’则停 | 需要第三个参数决定长度 |
用途不同 | 字符串时候使用 | 其他任何类型都可以 |
· strcpy要是不以'\0'结尾,复制一直没有停下来,可能造成数据对不上,甚至越界;
4. 自定义函数,返回字符串长度
int strlen1(const char * temp)
{
assert(NULL != temp);
const char * src = temp;
while(*temp++ != '\0');
return (temp - src - 1);
}
int strlen2(const char * temp)
{
int len = 0;
assert(NULL != '\0');
const char * src = temp;
while (*temp++ != '\0')
len++;
return len;
}
5. 实现C语言中strstr的库函数
#include <stdio.h>
const char *strstr(const char * src, const char * des)
{
const char *ap;
const char *bp;
while(*src)
{
ap = src;
bp = des;
do
{
if(!*bp)
return src;
}while(*ap++ == *bp++);
src++;
}
}
int main()
{
char str1[] = "123456";
char str2[] = "34";
printf("%s\r\n",strstr(str1,str2));
return 0;
}