C中流行的字符串函数[附示例]
已发表: 2020-10-21C 语言中的字符串是以空字符 ('\0') 结尾的字符数组。 字符串末尾的空字符表示它的结尾,字符串总是用双引号括起来。 在 C 语言中,字符用单引号括起来。 下面显示了它们的一些示例;
C 字符和字符串的示例或表示
- char string[10] = { 's','d','f','d','t','j','a','\0' };
- char string[10]="新鲜";
- char string[]=”更新鲜”;
上述两个语句中的字符串声明之间存在细微差别。 就像我们将 char 声明为 string[10] 时,分配了 10 个字节的内存空间来保存 string 的 10 个值,而当我们将其声明为 string[] 时,内存在程序执行时被分配。
目录
字符串声明和初始化
在 C 编程中,可以通过两种方式声明字符串,如上所示。 在 C 编程中,字符串是一个以 null 或 '\0' 字符结尾的字符序列。 下面给出了一个相同的例子:
char temp[]="临时字符串";
当一个字符串声明为 char 类型并用双引号括起来时,\0 会自动附加到字符串的末尾。 例如:

char temp[]="临时字符串";
吨 | e | 米 | p | s | 吨 | r | 一世 | n | G | \0 |
字符串声明
C语言中的字符串以下列方式声明:
字符温度[5];
s[0] s[1] s[2] s[3] s[4]
这样,我们就可以初始化一个长度为 5 的字符串。
字符串初始化
字符串初始化可以通过多种方式完成,其中一些方式如下:
char t[]="临时字符串";
char t[10]="临时字符串";
char t[]={'t','e','m','d','\0'};
char t[5]={'t','e','m','d','\0'};
吨 | e | 米 | p | \0 |
t[0] t[1] t[2] t[3] t[4]
在上述声明类型中,我们只能存储只有四个字符的字符串,而如果要在这样的字符串或数组中存储五个字符,则可能需要更长的字符数组。
阅读: Java 中的字符串数组:带有编码示例的 Java 字符串数组
给字符串赋值
数组和字符串不支持赋值运算符。 一旦声明了字符串,就不能将值分配给字符串类型变量。 例如,在 C 语言中,我们不能以下列方式编写和分配值:
字符 t[100];
t="温度值";
C中的字符串处理
现在我们将使用C 语言中一些流行的字符串函数,这些函数使字符串处理变得更加容易。 使用这些函数可以轻松地对字符串执行多项操作,例如读取字符串、复制或反转字符串以及许多其他操作。
字符串运算符或字符串函数可直接用于操作字符串。 在这里,在本文中,我们将解释诸如 gets()、puts()、strlen()、strcopy() 等库函数以及许多其他函数,以解释 C 中的字符串处理。
有时程序员必须编写字符串函数来根据所需的问题来操作它们。 然而,字符串操作可以手动完成,但这会使编程变得相当复杂和庞大。
C 中有一个标准的字符串函数库,称为“string.h”。 这个带有“.h”扩展名的头文件有许多不同语法的字符串处理函数。 我们将在本文的以下部分讨论其中的一些:
C中一些常用的字符串处理函数列表
功能 | 描述 |
strlen() | 可以计算字符串的长度 |
字符串() | 可以将一个字符串的内容复制到另一个 |
字符串() | 用于连接或连接两个字符串 |
strcmp() | 可以比较两个字符串 |
strlwr() | 可以将字符串转换为小写 |
Strupr() | 用于将字符串的字母转换为大写 |
Strrev() | 用于反转字符串 |
当您必须在程序中使用任何字符串处理函数时,这些函数不仅限于这些。 还有许多其他功能。 所以,让我们讨论它们:
1) 放置()和获取()
字符串头文件gets和puts这两个流行的函数分别用于获取用户的输入和显示字符串。 这两个函数都在 string.h 文件中定义。 让我们看一下这些函数的一个示例:
#包括主要()
诠释主()
{
字符温度[20];
printf(“输入你的名字”);
获取(温度);
printf(“我的名字是:”);
放置(温度);
返回0;
}
2) strcat()
对于必须将一个字符串附加到另一个字符串末尾的情况,正在使用此功能。 函数 strcat 可以将源字符串的副本附加到目标字符串的末尾。 用户必须传递两个参数,如下所述:

i) 源代码
ii) 目的地
这里指定了“src”字符串的位置,而在“dest”位置指定了我们必须附加源字符串的目标字符串。
例子
#include<字符串.h>
主函数()
{
char src[20]=“之前”;
char dest[20]=“之后”;
strcat(dest, src);
放(目的地);
返回0;
}
输出将是: after before
3) 函数 strlen()
可以直接用于字符串的字符串头文件的另一个函数是strlen()。 当您必须找出任何字符串的长度时,您可以使用函数 strlen(),即C 中的字符串函数。 但是,也可以手动编写程序来找出任何字符串的长度,但是使用此直接函数可以节省您的时间,示例如下:
#include<stdio.h>
主函数()
{
整数长度;
char s[20] = “我们在这里”;
长度=strlen(s);
printf(“字符串的\长度为= %d \n”, length);
返回0;
}
字符串的长度为 = 11
4) 函数 strcpy()
如果您必须将一个字符串的内容复制到另一个字符串,则使用此功能。 该函数的语法是 strcpy(dest,source)。 该函数可以将一个字符串的内容复制到另一个字符串。 下面给出了该函数的一个示例:
#include<字符串.h>
主函数()
{
char src[20]=“目的地”;
字符目的地[20]=“”;
printf("\n 源字符串是 = %s", src);
printf("\n 目标字符串是 = %s", dest);
strcpy(dest, src);
printf ("\nstrcpy() 之后的目标字符串 = %s", dest);
返回0;
}
输出
源字符串是 = 目标
目标字符串是 =
strcpy() = Destination 之后的目标字符串
学习: StringBuffer 与 StringBuilder:StringBuffer 和 StringBuilder 之间的区别
5) 函数 strcmp()
要比较两个字符串以了解它们是否相同,我们可以使用 strcmp() 函数。 该函数返回一个确定的值,可以是 0、>0 或 <0。 在此函数中,传递的两个值被视为区分大小写意味着“A”和“a”被视为不同的字母。 函数返回的值用作:
i) 当两个字符串相同时返回 0
ii) 如果 str1<str2 则返回负值
iii) 如果 str1>str2 则返回正值
例子:
#include<stdio.h>
#include<字符串.h>
主函数()
{
char str1[]=”复制”;
char str2[]=”奖杯”;
整数 I,j,k;
i=strcmp(str1, “复制”);
j=strcmp(str1,str2);
k-strcmp(str1, “f”);
printf(“\n %d %d %d”,I,j,k);
返回0;
}
输出:0 -1 1
6) 函数 strlwr() / strupr()
有时您可能需要将任何字符串的小写字母转换为大写字母,反之亦然。 为此,在 C 中有两个直接的字符串函数,它们可用于执行从大写到小写的转换,反之亦然。 在这里,我们已经解释了一个相同的例子:
#include<stdio.h>
#include<字符串.h>
主函数()
{
char str[]=”将我转换为小写”;
printf(“%s\n”, strlwr(str));
返回0;
}
输出:将我转换为小写
同样,如果我们使用 strupr 函数代替 strlwr,那么所有内容都将转换为大写字母。 我们可以使用在字符串头文件中定义的 strupr 函数。 通过这个函数,字符串的所有字母都被转换,也不需要任何冗长的手动过程。
7) 函数 strrev()
如果您想在不手动编写任何庞大或扩展程序的情况下反转任何字符串,则可以使用此功能。 函数 strrev() 用于反转字符串的内容。 strrev 函数用于检查字符串的性质,给定的字符串是否为回文。 字符串反转功能还存在一些其他用途和应用。 它的用途之一如下:
#include<stdio.h>
#include<字符串.h>
主函数()
{
char temp[20]="反向";
printf("反转前的字符串是:%s\n", temp);
printf("strrev() 后的字符串:%s", strrev(temp));
返回0;
}

更多有目的的字符串处理函数:
正如我们之前所说,C 中存在更多的字符串函数。C 中用于字符串处理的其他一些常用函数有:
功能 | 目的 |
strchr() | 它返回一个指针,指向 str1 中第一次出现的 char |
strdup() | 它可以复制字符串 |
strset() | 将字符串的所有字符设置为给定字符 |
strrchr() | 用于定位第一个指向字符的出现 |
另请阅读: Java 中的扫描程序类:构造函数和方法的类型,如何使用
最后的话
就像所有其他语言 C 一样,它也有一个庞大的即用型或内置函数库。 要处理任何字符串,您可以直接使用这些函数。 然而,功能不限于这些。 头文件中还有很多其他的C语言字符串函数。 它们的主要好处是减少编码的时间和长度。
如果您有兴趣了解有关 Java、OOP 和全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训,9 + 项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。