我们都知道,在c语言或者是c++中,都有各自的字符串操作函数,各个有各自的特点,也有类似点,今天我就给大家概括一下strlen、strcpy/strncpy、strcat/strncat、strcmp/strncmp、strchr/strrchr、strstr、strtok、atoi/atol/atof/itoa/ltoa/ftoa这些函数的作用以及使用方。
目录
7、atoi / atol / atof / itoa / ltoa / ftoa(字符串转换数值 / 数值转换字符串)
1、strlen(获取字符串长度函数)
头文件:include<string.h>
函数定义:szie_t strlen(const char *s);
函数功能:测字符指针s指向的字符串中字符的个数,不包括'\0'
返回值:字符串中字符个数
例子:
#include <stdio.h>
#include<string.h>
int main()
{
//strlen获取的字符串的长度遇到第一个\0结束
char s1[100] = "hello";
//获取s1的字符串长度
printf("s1_len = %d\n",strlen(s1));
//获取申请总空间的大小(char型数据一个数据占一个字节)
printf("s1_size = %d\n",sizeof(s1));
char *s2 = "hello";
printf("s2_len = %d\n",strlen(s2));
//sizeof获取的是*s2这个指针的地址大小
printf("s2_size = %d\n",sizeof(s2));
return 0;
}

2、strcpy / strncpy(字符串拷贝函数)
头文件:include<string.h>
函数定义:char *strcpy(char *dest, const char *src);
函数功能:拷贝src指向的字符串到dest指针指向的内存中,'\0'也会拷贝
返回值:目的内存的地址
注意:在使用时需保证dest指向的内存空间足够大,否则回出现内存污染
例子:
#include <stdio.h>
#include<string.h>
int main()
{
char s1[32] = "hello world";
char s2[32] = "abcded";
strcpy(s1,s2);
printf("s1 = %s\n",s1);
//验证s1[]后面到底是什么内容
//其实hello world后面的字符还存在,但是strcpy这个函数将\0也复制
//所以未显示后面内容
for(int i=0;i<32;i++)
{
printf("[%c] - %d\n",s1[i],s1[i]);
}
return 0;
}

函数定义:char *strncpy(char *dest, const char *src,size_t n);
函数功能:将src指向的字符串的前n个字符拷贝到dest指向的内存中
返回值:目的内存的首地址
注意:1、strncpy不能拷贝'\0'
2、如果n大于src指向的字符串中字符的个数,则在dest后面填充n - strlen(src)个'\0',也就是多出多少个就添加多少个'\0'
例子:使用方法和strcpy一致,只是多了一个参数n,就不给大家演示了,有兴趣的同学可以去验证一下注意中的两点
#include <stdio.h>
#include<string.h>
int main()
{
char s1[32] = "hello world";
char s2[32] = "abcded";
strncpy(s1,s2,3);
printf("s1 = %s\n",s1);
return 0;
}

本文详细介绍了C/C++中常用的字符串处理函数,包括strlen、strcpy/strncpy、strcat/strncat、strcmp/strncmp、strchr/strrchr、strstr、strtok、atoi/atol/atof及itoa/ltoa/ftoa的功能和使用方法,并通过实例展示了它们的用法,帮助读者理解和掌握这些函数在实际编程中的应用。
最低0.47元/天 解锁文章
1711

被折叠的 条评论
为什么被折叠?



