迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

C 中的空终止字符串

作者:迹忆客 最近更新:2023/03/29 浏览次数:

这篇小文章将讨论字符串在C语言中的使用。 C语言中的字符串是使用字符数组构成的。


C 中的字符串

实际上,字符串是一个一维字符数组,以空字符 \0 结束。 组成字符串的字符后跟一个 null 以形成一个以 null 结尾的字符串。

下面的代码片段创建了一个以空字符结尾的字符串。 为了将空字符放在末尾,我们需要使字符串的长度比字符串的原始字数多一个字符。

char test[5] = {'T', 'e', 's', 't', '\0'};

这是C中初始化字符串的一种方式,注意字符串大小设置为5,但字符串的字符数为4,第5个字符为空字符\0。

您还可以按照以下代码段初始化字符串。

char test[] = "Test";

因此,将空字符放在字符串的末尾不是强制性的。 C 编译器会自动为我们做这些。

当我们打印两个字符串时,不会打印终止空字符。 让我们看看下面的例子。

#include <stdio.h>
int main () {
    char test[5] = {'T', 'e', 's', 't', '\0'};
    char test2[] = "Test";
    printf("Test message: %s\n", test );
    printf("Test message 2: %s\n", test2 );
}

我们在上面的代码段中创建了两个字符串,并用相同的数据对它们进行了初始化。 我们在第一个字符的末尾明确放置了一个空字符。

同时,它没有放在第二个中。 当我们打印这些字符串时,两者将具有相同的数据。

输出结果:

C strings demo


C 中的 C 字符串库函数

C 中的许多函数都支持用于以 null 结尾的字符串。 string 类中提供了许多函数; 一些如下。

序号 函数 说明
1 strcpy(str1, str2); 它将 str1 复制到 str2。
2 strcat(str1, str2); 它连接 str2 和 str1,使得 str1 后跟 str2
3 strlen(str1); 它告诉 str1 的长度。
4 strcmp(str1, str2); 它有三个结果: 1 如果 str1 和 str2 相等; 如果 str1 < str2 则为负; 如果 str1 > str2 则为正
5 strchr(str1, c); 返回对 str1 中第一次出现的 c 的引用
6 strstr(str1, str2); 返回对 str1 中第一次出现的 str2 的引用

下面的示例使用其中一些函数来演示 C 中字符串的使用。

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

int main () {

   char mystr1[12] = "First";
   char mystr2[12] = "Second";
   char mystr3[12];
   int  length ;

   /* copy the first string into the third */
   strcpy(mystr3, mystr1);
   printf("strcpy( mystr3, mystr1) :  %s\n", mystr3 );

   /* concatenates first and second */
   strcat( mystr1, mystr2);
   printf("strcat( mystr1, mystr2):   %s\n", mystr1 );

   /* length of the first string after concatenation */
   length = strlen(mystr1);
   printf("strlen(mystr1) :  %d\n", length );

   return 0;
}

输出结果:

string functions output

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便