字符串与字符函数介绍1
- 前言
- 一、字符分类函数
- 字符函数练习
- 二、字符函数转换
- 1.引入库
- 2.代码改进
- 字符串函数
- strlen函数
- strcpy
- 结尾
前言
字符串函数大概有以下这几种 strcpy、strcat 、strcmp、strncpy、strncat、strncmp、strstr、strtok、strerror
这些函数可以很好的解决你所遇到的关于字符串相对应的问题
字符函数
以下是本篇文章正文内容,下面案例可供参考
一、字符分类函数
这些函数都是放在一个头文件 ctype.h
这些函数运用都差不多
比如:islower字符函数
函数类型
int islower(int c)//这是islower的函数,(int c)实际上是传字符的ASCALL码值
返回值
如果输入的值不是小写字母的话就返回0
如果是小写字母的话就返回一个非0值
代码展示
int main()
{
int ret = islower('a');
printf("%d\n", ret);
return 0;
}
字符函数练习
//写个代码,将字符串的小写字母转大写字母,其他字符不变.
int main()
{
char arr[] = "I AM A student";
// I AM A student\0
int i = 0;
while (arr[i] != '\0')
{
if (arr[i] >= 'a' && arr[i] <= 'z')
{
arr[i] -= 32;
}
i++;
}
printf("%s", arr);
return 0;
}
通过所学的字符函数我们就可以进行替换
int main()
{
char arr[] = “I AM A student”;
// I AM A student\0
int i = 0;
while (arr[i]!=‘\0’)
{
if (islower(arr[i]))//在这里替换
{
arr[i] -= 32;
}
i++;
}
printf(“%s”, arr);
return 0;
}
总而言之:
这些字符函数都与islower用法相似,不是所要判断的内容就返回
0;否则就返回非0值
二、字符函数转换
1.引入库
C语言提供了2个字符转换函数:
- int tolower(int c);//将参数传进去的大写字母转小写
- int toupper(int c);//将参数传进去的小写字母转大写
int main()
{
printf("%c\n",toupper('a'));
printf("%c\n", tolower('A'));
return 0;
}
通过字符转换
那么我们可以进一步的改良大写转小写的项目
int main()
{
char arr[] = “I AM A student”;
// I AM A student\0
int i = 0;
while (arr[i]!=‘\0’)
{
if (islower(arr[i]))
{
arr[i] =toupper(arr[i]);//在这里替换
}
i++;
}
printf(“%s”, arr);
return 0;
}
2.代码改进
通过字符转换
那么我们可以进一步的改良大写转小写的项目
代码如下(示例):
int main()
{
char arr[] = "I AM A student";
// I AM A student\0
int i = 0;
while (arr[i]!='\0')
{
if (islower(arr[i]))
{
arr[i] =toupper(arr[i]);//在这里替换
}
i++;
}
printf("%s", arr);
return 0;
}
字符串函数
1. 懂得怎么运用字符串函数
2. 深刻理解字符串函数的实现
3. 模拟字符串函数<一步一步的解析字符串函数>
strlen函数
strlen的详细内容
- 返回值size_t
如图所示
int main()
{// 3 - 4
if (strlen(“abc”) - strlen(“abcdef”)>0)
{
printf(“>\n”);
}
else
{
printf(“<=\n”);
}
}
>因为这里的strlen返回值是size_t无符号数,
那么3-4=(无符号数)
所以结果是>0的值;返回>
- strlen模拟实现
方式1:
//方式1:计数器
int count(char* arr1)
{
int a = 0;
int i = 0;
while (arr1[i] != '\0')
{
i++;
a++;
}
return a;
}
方式2:递归
int cwz(char* arr1)
{
assert(arr1);
if(*arr1=='\0')
{
return 0;
}
else
{
return 1+cwz(arr1+1);
}
}
方法3:指针
int cwz(char* arr1)
{
assert(arr1);
char* p=arr1;
while(*p!='\0')
{
p++;
}
return p-arr1;
strcpy
char* strcpy(chardestination,charsource )
1:strcpy函数的主要功能就是复印的作用
(1)strcpy返回的类型是char*,参数是指针。
2:参数
(1)我们要把源头的字符要打印到目的地
(2)条件一:而且目的地的(数组的容量要够大)
条件二:源头的数组最后不能没有‘\0’
如果没有程序会崩溃
3:模拟实现strcpy
void cwz(char* dest, const char* source)
{
assert(dest);
assert(source);
while (*source != '\0')
{
*dest = *source;
dest++;
source++;
}
*dest = *source;
}
int main()
{
char arr[] = "sfaskf";
char arr1[30] = { 0 };
cwz(arr1, arr);
printf("%s", arr1);
}
结尾
字符串函数与字符函数(1)
到此结束喽!!!
我也会尽快更更新(2)ლ(′◉❥◉`ლ)敬请期待后续内容。