LATEST

Cách nối hai chuỗi trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách nối hai chuỗi trong C / C++. Đây là bài tập căn bản giúp các bạn thao tác với chuỗi trong C / C++.

Để hiểu được chương trình, các bạn cần có kiến thức cơ bản về lập trình C và C++, đặc biệt là vòng lặp nhé.

Như thế nào được gọi là nối hai chuỗi với nhau? Đó là khi nội dung của chuỗi sau được nối liền sau chuỗi thứ nhất.

Ví dụ: mình có hai chuỗi "Hello" và chuỗi "codehow.net", khi nối hai chuỗi này lại thì sẽ như sau "Hellocodehow.net".

Vậy ngay bây giờ, hãy cùng codehow tìm hiểu cách nối hai chuỗi trong C / C++ thôi nào !!!

Cách nối hai chuỗi trong C / C++

Trong phần này, mình sẽ thực hiện chương trình nối hai chuỗi trong C / C++, Cụ thể như sau:

Bước 1: Khai báo hai mảng để chứa nội dung của hai chuỗi.

// khai báo hai mảng để chứa cá phần tử trong hai chuỗi
char str1[50], str2[50], i, j;

Bước 2: Yêu cầu người dùng nhập vào hai chuỗi.

// yêu cầu người dùng nhập vào hai chuỗi
printf("Nhập vào chuỗi thứ nhất: ");
scanf("%s", &str1);
printf("Nhập vào chuỗi thứ hai: ");
scanf("%s", &str2);

Bước 3: Sử dụng vòng lặp for để nối hai chuỗi lại với nhau.

//chạy vòng lặp for để nối chuỗi
   for(i=0; str1[i]!='\0'; ++i); 
   for(j=0; str2[j]!='\0'; ++j, ++i)
   {
      str1[i]=str2[j];
   }

Bước 4: Hiển thị chuỗi sau khi nối ra màn hình.

// hiển thị kết quả ra màn hình
printf("Kết quả là: %s",str1);

Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngôn ngữ khác nhau là C và C++, các bạn có thể tham khảo nhé.

Chương trình C:

//khai báo thư viện stdio.h
#include <stdio.h>

int main(void) {
  // khai báo hai mảng để chứa cá phần tử trong hai chuỗi
   char str1[50], str2[50], i, j;
   // yêu cầu người dùng nhập vào hai chuỗi
   printf("Nhập vào chuỗi thứ nhất: ");
   scanf("%s", &str1);
   printf("Nhập vào chuỗi thứ hai: ");
   scanf("%s", &str2);
   //chạy vòng lặp for để nối chuỗi
   for(i=0; str1[i]!='\0'; ++i); 
   for(j=0; str2[j]!='\0'; ++j, ++i)
   {
      str1[i]=str2[j];
   }
   str1[i]='\0';
   // hiển thị kết quả ra màn hình
   printf("Kết quả là: %s",str1);
   
   printf("\n------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai20 02 PNG

Chương trình C++:

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
  // khai báo hai mảng để chứa cá phần tử trong hai chuỗi
   char str1[50], str2[50], i, j;
   // yêu cầu người dùng nhập vào hai chuỗi
   cout<<"Nhập vào chuỗi thứ nhất: ";
   cin>>str1;
   cout<<"Nhập vào chuỗi thứ hai: ";
   cin>>str2;
   //chạy vòng lặp for để nối chuỗi
   for(i=0; str1[i]!='\0'; ++i); 
   for(j=0; str2[j]!='\0'; ++j, ++i)
   {
      str1[i]=str2[j];
   }
   str1[i]='\0';
   // hiển thị kết quả ra màn hình
   cout<<"Kết quả là: "<<str1;
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai20 01 PNG

Cách nối hai chuỗi trong C / C++ sử dụng hàm strcat()

Cũng với bài toán này, thay vì thực hiện theo cách thông thường là sử dụng vòng lặp để nối hai chuỗi. Chúng ta còn một cách khác nhau hơn và dễ hiểu hơn rất nhiều.

Bằng cách sử dụng hàm strcat() trong C / C++. Chỉ cần khai báo thư viện string.h là chúng ta có thể sử dụng nó rồi đó.

Hãy cùng xem cách thực hiện nó thông qua hai chương trình được viết bằng ngôn ngữ C và C++ dưới đây nhé.

Chương trình C:

//khai báo thư viện stdio.h
#include <stdio.h>

int main(void) {
  // khai báo hai mảng để chứa cá phần tử trong hai chuỗi
   char str1[50], str2[50], i, j;
   // yêu cầu người dùng nhập vào hai chuỗi
   printf("Nhập vào chuỗi thứ nhất: ");
   scanf("%s", &str1);
   printf("Nhập vào chuỗi thứ hai: ");
   scanf("%s", &str2);
   //sử dụng hàm strcat() để nối hai chuỗi str1 và str2
   // hiển thị kết quả ra màn hình
   printf("Kết quả là: %s",strcat(str1,str2));
   
   printf("\n------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai20 04 PNG

Chương trình C++:

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
  // khai báo ba mảng để chứa cá phần tử trong hai chuỗi
   char str1[50], str2[50];
   // yêu cầu người dùng nhập vào hai chuỗi
   cout<<"Nhập vào chuỗi thứ nhất: ";
   cin>>str1;
   cout<<"Nhập vào chuỗi thứ hai: ";
   cin>>str2;
  //sử dụng hàm strcat() để nối hai chuỗi str1 và str2
   // hiển thị kết quả ra màn hình
   cout<<"Kết quả là: "<<strcat(str1,str2);
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai20 03 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về cách nối hai chuỗi trong C / C++. Có hai cách nối chuỗi đó là sử dụng vòng lặp for hoặc có thể sử dụng hàm strcat() trong thư viện string.h nhé. Chúc các bạn thực hiện thành côn !!!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn