C 语言程序连接两个字符串


2022 年 5 月 3 日, Learn eTutorial
1594

什么是字符串连接?

在此 C 语言程序中,我们需要连接两个字符串,这意味着我们需要将第二个字符串添加到第一个字符串的末尾。例如,'hello' 是第一个字符串,'world' 是第二个字符串。我们需要输出“hello world”作为连接后的字符串。

C 语言中如何进行字符串连接?

为了实现这一点,声明两个字符类型的数组,'string1' 和 'string2'。然后使用 'strset() 函数' 将所有数组位置设置为 null。现在从用户那里接收两个字符串并将其存储在 'string1' 和 'string2' 中。应用一个 for 循环遍历到第一个字符串的末尾。到达末尾后,我们开始下一个循环,将第二个字符串添加到第一个字符串。结果将是连接后的字符串 'string1'。最后,显示连接后的字符串 'string1'。

strset() 是什么?

strset() 函数用于将字符串的所有字符设置为给定字符。 'string.h' 头文件包含此函数;'strset()' 的语法是

strset(string1, char1);

strset() 函数主要有两个参数。

  • 第一个参数是字符串,string1。
  • 第二个参数是字符,char1。

在这里,strset() 函数将把 string1 的所有字符设置为 char1

算法

步骤1:包含头文件以使用C语言程序中的内置函数。

步骤 2: 声明字符数组 'string1' 和 'string2'。

步骤 3: 声明整数变量 i, j, pos

步骤 4: 将 string1 和 string2 的所有出现设置为 NULL,并 'i=0'。

步骤 5: 使用 gets() 函数从用户读取 string1。

步骤 6: 使用 gets() 函数从用户读取 string2。

步骤 7: 然后显示第一个字符串为 string1,第二个字符串为 string2。

步骤 8: 使用 for 循环,条件为 string1[i] != '\0',将 'i' 递增 1。用于获取第一个字符串的结束位置。

步骤 9: 分配 'pos=i' 和 'pos=i', j=0

步骤 10: 使用另一个 for 循环,条件为 string2[j] != '\0',执行步骤 11。

步骤 11: string1[i] = string2[j++]

步骤 12: 将 'i' 递增 1 并重复步骤 10。

步骤 13: 将 'string1' 的最后一个字符设置为 NULL。

步骤 14: 然后显示连接后的字符串为 string1。

C 语言源代码

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

void main() {
  char string1[20], string2[20];
  int i, j, pos;
  printf("Enter the first string :");
  gets(string1);
  fflush(stdin);
  printf("Enter the second string:");
  gets(string2);
  printf("First string  = %s\n", string1);
  printf("Second string = %s\n", string2); /*To concatenate the second string to the end of the string  traverse the first to its end and attach the second string*/
  for (i = 0; string1[i] != '\0'; i++) {} /*null statement: simply traversing the string1*/
  pos = i;
  for (i = pos, j = 0; string2[j] != '\0'; i++) {
    string1[i] = string2[j++];
  }
  string1[i] = '\0'; /*set the last character of string1 to NULL*/
  printf("Concatenated string = %s\n", string1);
}
                                      

输出

Enter the first string :CD-

Enter the second string:ROM

First string  = CD-

Second string = ROM

Concatenated string = CD-ROM