2.1:常用的C语言库函数-字符和字符串操作函数

目录

字符串的打印与读取

字符操作函数

字符串操作函数

1.字符串的长度计算(sizeof)

 2.字符串的复制操作(strcpy、strncpy、sprintf、memcpy、strdup)

3.字符串连接函数(strcat、sprintf)

4.字符串比较(strcmp、strncmp、strcasecmp、strcasencmp)

 5.字符串查找函数(strpbrk、strstr、strrchr)

6. 字符串转换函数(atoi、atol、strtol、strtoul、atof、strtod、ecvt、fcvt、gcvt、itoa、ltoa、ultoa)



字符串的打印与读取

gets和fgets

//gets  不安全的函数,vs默认报错

//fgets
//char *fgets(char *s, int size, FILE*stream);
/* fgets从stream中读取最多size-1大小的内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,fgets会在所读取的内容后面添加'\0',这样,fgets读取的内容中会包括行末尾的'\n'字符。如果要获取读取字符串的长度,可以调用strlen函数获得。*/


#include <stdio.h>
#include <string.h>
#define SIZE 50
int main()
{
	char buf[SIZE] = "0";
	while (fgets(buf, SIZE, stdin)) {
		puts(buf);
	}
	return 0;

}

字符操作函数

  单字节字符处理函数在ctype.h(C++的cctype)中声明。宽字节字符处理函数在wctype.h(C++的cwctype)中声明.

实现一个输入一串字符,分别计算字符串中英文字母,数字、字符的个数,并将所有的英文字母转换为大写母

字符串操作函数

1.字符串的长度计算(sizeof)

 2.字符串的复制操作(strcpy、strncpy、sprintf、memcpy、strdup)

strcpy

strcpy返回的是dest的地址 所以上述代码也可以改为

 strncpy函数

strcpy是不安全的函数,一般要使用strncpy, strncpy比strcpy多传入一个参数n,表示复制前n个字符。

strdup和_strdup

_strdup是 windows编译

strdup是linux编译

要注意的是此类函数是调用malloc在堆上申请一块空间,所以用完记得释放,不然会造成内存泄漏

3.字符串连接函数(strcat、sprintf)

strcat和sprintf两者都可以实现字符串拼接 不过要注意申请字符数组的大小

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[20] = "hello";
	char str2[] = "world";
	sprintf(str1, "%s%s", str1, str2);
	//printf("strcat = %s\n", strcat(str1, str2));两者都可以实现字符串拼接
	printf("str1 = %s\n", str1);

	return 0;
}

4.字符串比较(strcmp、strncmp、strcasecmp、strcasencmp)

strcmp和strncmp

strcmp按照ASCII码大小进行比较,若buf1大于buf2,strcmp(buf1,buf2)返回正整数,小于返回负整数,等于则返回0

所有的字符比较规则都依照ASCII码,例如空格的ASCII是32

 strcasecmp和strncasecmp

这两个函数是指忽略大小写的比较,不过只能在linux使用

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[] = "Hello";
	char str2[] = "hello";
	char str3[] = "Hellp";
	printf("strcasecmp = %d\n", strcasecmp(str1, str2));
	printf("strcasecmp = %d\n", strcasecmp(str2, str3));
	printf("strncasecmp = %d\n", strncmp(str1, str3, 4));
	return 0;
}

 5.字符串查找函数(strpbrk、strstr、strrchr)

strpbrk是搜索s1字符串,搜索的内容是s2中任意第一个出现字符。返回时s1中最先出现的位置

strstr是搜索s1字符串,搜索的内容是s2整个字符串。返回时s1中最后出现的位置

strrchr是搜索s1字符串,搜索内容是指定的字符,返回时s1中最后出现的位置

6. 字符串转换函数(atoi、atol、strtol、strtoul、atof、strtod、ecvt、fcvt、gcvt、itoa、ltoa、ultoa)

依照名字可以看出这些函数的用法,下面列举几个需要注意的

strtol和 strtonl可以使用第三个参数转换成自己想要的进制(十进制二进制八进制都可以)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值