21xrx.com
2024-12-22 23:22:51 Sunday
登录
文章检索 我的文章 写文章
C中的字符串连接
2021-07-07 08:42:38 深夜i     --     --
C

连接两个字符串的C程序; 例如,如果两个输入字符串是“C编程”和“语言”(注意语言前的空格),那么输出将是“C编程语言”。 连接字符串,我们使用“string.h”的strcat函数,在不使用库函数的情况下进行打点,参见下面的另一个程序。

 

C 连接字符串程序

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


int main()
{
  char a[1000], b[1000];

  printf("Enter the first string\n");
  gets(a);

  printf("Enter the second string\n");
  gets(b);

  strcat(a, b);

  printf("String obtained on concatenation: %s\n", a);

  return 0;
}


程序输出:

下载字符串连接程序。

连接没有 strcat 函数的字符串

不使用“string.h”头文件的库函数strcat来连接字符串的C程序。 我们创建我们的函数。
 

#include <stdio.h>


void concatenate(char [], char []);
 
int main()
{
   char p[100], q[100];
 
   printf("Input a string\n");
   gets(p);
 
   printf("Input a string to concatenate\n");
   gets(q);
 
   concatenate(p, q);
 
   printf("String obtained on concatenation: \"%s\"\n", p);
 
   return 0;
}

void concatenate(char p[], char q[]) {
   int c, d;
   
   c = 0;
 
   while (p[c] != '\0') {
      c++;      
   }
 
   d = 0;
 
   while (q[d] != '\0') {
      p[c] = q[d];
      d++;
      c++;    
   }
 
   p[c] = '\0';
}

concatenate 函数中的第一个 for 循环是计算字符串长度; 如果你愿意,你也可以使用 strlen 函数。

连接后访问字符串

要使用 strcat 连接两个字符串,我们将第二个附加到第一个。 如果我们需要进一步访问程序中的第一个怎么办?

让我们来看看如何做到这一点。

 

  • 由于第一个字符串仍然是连接字符串的一部分,如果我们在连接之前存储它的长度,我们就可以访问它。 但是,它会增加代码大小。
  • 在连接之前制作第一个字符串的副本。 这种方法使用了一些额外的内存,但很容易实现。
  • 通过将第一个复制到其中创建一个新字符串,然后将其与第二个连接。

现在实现:
 

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


int main()
{
  char firstName[1000], lastName[1000], fullName[2000];

  printf("Enter your first name\n");
  gets(firstName);


  printf("Enter your last name\n");
  gets(lastName);


  strcpy(fullName, firstName);
  strcat(fullName, " ");       // Concatenating a space
  strcat(fullName, lastName);

  printf("Hello, %s\n", fullName);

  return 0;
}

输出:

Enter your first name
John
Enter your last name
Doe
Hello, John Doe

使用指针的字符串连接

#include <stdio.h>


void concatenate_string(char*, char*);

int main()
{
    char original[100], add[100];
   
    printf("Enter source string\n");
    gets(original);
   
    printf("Enter string to concatenate\n");
    gets(add);
   
    concatenate_string(original, add);
   
    printf("String after concatenation: \"%s\"\n", original);
       
    return 0;
}

void concatenate_string(char *original, char *add)
{
   while(*original)
      original++;
     
   while(*add)
   {
      *original = *add;
      add++;
      original++;
   }
   *original = '\0';
}

 

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复