C语言字符串及其函数

C语言中没有类似于C++或Java中的string类型,如果要在C中表示字符串,可用字符数组的形式,数组的概念可戳此链接了解。

在C++中,string类库可以更简单的表示和使用字符串,可戳此链接了解string类。

C语言中字符串是以空字符\0结尾的char类型数组。本文简单讲解它的基本知识和函数。

字符串

字符串通常用双引号"括起来,称之为字符串常量,编译器会自动在末尾加上空字符\0,例如

char str[50] = "Hello World!";

字符串的空格也会囊括在内,也可按照下面这种方式创建

char str[50] = "Hello " "World!";

多个双引号之间会自动串联起来,上面两种方式等价。方括号中的数字可以省略,编译器会自动计算数组大小,如

char str[] = "Hello World!";

字符串也可按照一般数组的方式定义,如

char str[50] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0'};

这种方式比较麻烦,而且尤其要注意最后的空字符\0

空字符\0也占位置,指定数组大小时要保证是字符串长度加1。

还可用指针的方式创建字符串,如

char * ptr = "Hello World!";

字符串函数

C语言库提供了多个字符串处理函数,它们都包含在string.h中,因此要使用这些函数必须包含这个头文件

#include <string.h>
  1. strlen()

统计字符串长度,如

strlen(str);

返回字符串长度值。

  1. strcat()

用于字符串拼接,把字符串str2附加在字符串str1后面,字符串str2不变,如

strcat(str1, str2);

返回第1个字符串地址。

要注意字符串str1的大小能够容纳下拼接后的字符串。

  1. strncat()

同样用于字符串拼接,并指明添加字符数,如

strncat(str1, str2, 5);

在加到第5个字符或遇到空字符时停止。

可弥补strcat()函数的不足。

  1. strcmp()

按照字典序(ASCII码)依次比较两个字符串的字符,如

strcmp(str1, str2);

str1str2前面时,返回负数;如果相同返回0;如果在后面返回正数。返回的值取决于实现。

该函数比较的是字符串,而不是字符。比较字符可直接使用逻辑运算符。

  1. strncmp()

指定需要比较的长度,如

strncmp(str1, str2, 5);

限定函数只比较前5个字符。

strcmp()函数会一直比较到末尾。

  1. strcpy()

字符串拷贝,相当于字符串的赋值操作,如

strcpy(str1, str2);

把字符串str2拷贝到字符串str1str1称为目标字符串str2称为源字符串

要注意源字符串的大小能否容纳得下。

该函数返回的类型是char *,是第1个参数的地址。

该函数还可指定拷贝的位置,如

strcpy(str1 + 5, str2);

可以保留str1第0到第4个位置的字符。

  1. strncpy()

该函数同样是拷贝字符串,并可指定拷贝的最大字符数,如

strncpy(str1, str2, 5);

str2中的第5个或空字符之前的字符拷贝到str1中。

拷贝的副本中不一定有空字符\0
弥补strcpy()函数的不足

  1. sprintf()

该函数在stdio.h中,而不是string.h。把数据写入字符串。

该函数第一个参数是目标字符串地址,其余参数和printf()相同。戳此处查看print()函数的用法。

输入与输出

C语言字符串有专门的输入和输出函数,详细可戳此链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值