如何在C中连接字符串:快速学习教程指南

作者 : IT 大叔 本文共2721个字,预计阅读时间需要7分钟 发布时间: 2020-12-22

修改字符串是一项重要的编程技能。串联涉及将一个字符串附加到另一字符串末尾

例如,假设我们有两个字符串:“ C编程”和“语言”。我们可以使用串联来生成输出“ C编程语言”。

我们可以通过几种方法在C语言中附加或连接字符串。本快速教程教您如何使用strcat()函数集中两个字符串。

今天,我们将回顾:

  • C语言中的字符串
  • 如何将一个字符串附加到另一个字符串的末尾
  • strncat 附加字符功能
  • 更多C字符串问题
  • 接下来要学什么

了解C的基础

这门综合课程将向您介绍C语言的所有基本和高级编程概念。

C中的字符串复习

字符串是编程中最流行的数据类型之一。它是字符组合在一起的集合。实际上,字符串实际上是字符数组。就像数组一样,我们可以通过索引访问字符串元素。

C语言在处理字符串时可能会有些尴尬,尤其是与Python之类的语言相比。在C语言中,字符串是通过字符数组来表示的。可以使用以下语法声明字符串。

char stringName [stringSize];

在下面,变量a是一个字符数组,您最多可以在其中存储10字符。

char a[10].

它可以初始化如下:

  1. C程序自动插入空字符,如右图所示。
  2. 编译器隐式地以初始化样式提供空字符,如右图所示。
char  stringName [stringSize] = { 'S' , 'a' , 'n' , 'j' , 'a' , 'y' , '\0' } ;
char  stringName [stringSize] = "Sanjay" ;

让我们将这些概念与两个示例放在一起。

#include <stdio.h>

int main () {

   char a[5] = {'H', 'e', 'l', 'l', 'o',};
   printf("String: %s\n", a );
   return 0;
}
#include <stdio.h>

int main(void) {

  printf("Hello world\n");

  char c = 'p';
  char s[] = "paul";

  printf("c=%c and s=%s\n", c, s);

  return 0;
}

在C中,字符串始终以null终止。这意味着字符数组的最后一个元素是“空”字符(缩写为)\0。当您在上面的第8行中声明一个字符串时,编译器会为您执行此操作。

常量字符串写在双引号内(请参阅下面的第5行),单字符变量使用单引号来声明(请参阅下面的第7行)。

我们可以使用该sizeof()函数检查上面的字符串,以查看实际的长度:

#include <stdio.h>

int main(void) {

  char s[] = "paul";

  printf("s is %ld elements long\n", sizeof(s));

  return 0;
}

修改字符串

在C语言中,修改已声明的字符串有点棘手。一旦将字符串声明为给定长度,就不能通过为变量重新分配新常量来使其变长或变短。

有许多内置函数可用于修改字符串。考虑两个字符串s1s2。以下是string.h头文件中可用的一些内置函数:

  • strlen(s1):返回字符串的长度。
  • strcpy(s1, s2):将字符串复制s2s1
  • strrev(s1):反转给定的字符串
  • strcmp(s1, s2):如果s1s2包含相同的字符串,则返回0 。
  • strcat(s1, s2):连接两个字符串

如何将一个字符串附加到另一个字符串的末尾

在C语言中,该strcat()函数用于连接两个字符串。它将一个字符串(源)连接到另一字符串(目标)的末尾。源字符串的指针附加到目标字符串的末尾,从而将两个字符串连接在一起。

基本过程如下:

  • 提取目标字符串
  • 查找NULL字符
  • 复制以目标字符串的NULL字符开头的源字符串
  • 复制后将NULL字符附加到目标字符串

让我们来看一个例子。下面,以下代码将使用strcat()函数将两个字符串连接起来:

#include <stdio.h>
#include <string.h>
int main()
{
    char destination[] = "Hello ";
    char source[] = "World!";
    strcat(destination,source);
    printf("Concatenated String: %s\n", destination);
    return 0;
}

除了修改原始目标字符串外,该strcat()函数还返回指向该字符串的指针。这意味着我们可以直接将strcat()函数传递给printf()函数。

#include <stdio.h>
#include <string.h>
int main()
{
    char destination[] = "Hello ";
    char source[] = "World!";
    printf("Concatenated String: %s\n",  strcat(destination,source));
    return 0;
}

在C中,目标数组必须先初始化,然后再传递给strcat。这意味着它必须至少包含一个带有NULL字符的位置。

strncat 附加字符功能

strncat功能略有不同。我们可以使用它最多n将源字符串中的字符附加到目标字符串中。下面的示例src在结尾处附加前5个字符dest(即从NULL字符开始)。然后在末尾附加一个NULL字符。

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

#define DEST_SIZE 40

int main()
{
	char src[] = "World Here";
	char dest[DEST_SIZE] = "Hello";

	strncat(dest, src, 5);
	printf(dest);

	return 0;
}

注意:目标数组必须足够大以容纳以下内容:目标的字符,源的n个字符和NULL字符。

如果要复制的字符数超过了源字符串,strncat则遇到空字符时将停止追加,如下所示:

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

#define DEST_SIZE 40

int main()
{
	char src[] = "World Here";
	char dest[DEST_SIZE] = "Hello";

	strncat(dest, src, 3);
	printf(dest);

	return 0;
}

更多C字符串问题

我们可以使用C语言中的字符串做更多的事情。看看一些有关字符串的常见访谈问题,以了解要学习的知识:

  • 编辑字符串的所有内容
  • 用不同的字符替换字符串中的每个字符
  • 将一个字符串的每个字符映射到另一个字符串,以便将所有出现的字符都映射到同一字符
  • 修改字符串,以便将每个字符替换为键盘中的下一个字符
  • 使用指针在字符串上创建数组
  • 将字符串中的所有字母转换为大写字母
  • 将字符串转换为整数
  • strtok()在C中使用分割字符串
免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 如何在C中连接字符串:快速学习教程指南

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论